功能接口作为Java 8的一部分引入。它使用称为@FunctionalInterface的注释实现。它确保接口应仅具有一种抽象方法。abstract关键字的用法是可选的,因为在接口内部定义的方法默认为abstract。重要的是要注意,一个功能接口可以有多个默认方法(可以说是默认的具体方法),但是只能有一个抽象方法。接口中引入了默认方法,以便可以在该类中添加新方法而不会影响现有接口的实现类。因为在Java 8之前,接口的实现类必须实现接口中定义的所有抽象方法。
另一方面,Java 8中引入了功能接口以支持Java 8中的lambda表达式,可以说lambda表达式是功能接口的实例。
例如:
众所周知,上述接口是在Java 8之前实现的。但是在Java 8中,它可以以更智能的方式实现。查找以下实现。
上面的功能接口详细信息的完整实现可在GitHub上获得,其链接将在本教程的最后提供。
在Java 8中,引入了4个主要的功能接口,这些接口可以在不同的场景中使用。这些在下面给出。
Consumer - BiConsumer
Predicate – BiPredicate
Function – BiFunction, UnaryOperator, BinaryOperator
CONSUMER 让我们讨论消费者。
使用者接口接受一个参数,但是没有返回值。
Output: CONSUMER
上面的使用者接受一个参数并以大写形式打印它。但是没有返回值。
Output: true
BIPREDICATE BiPredicate将接受两个参数而不返回任何参数,而不是一个参数。
FUNCTION 此接口接受一个参数,并在所需的处理后返回一个值。定义如下。所需的处理逻辑将在apply方法调用时执行。
例如,上面的Functional接口将被执行,而下面的代码将被执行。
Output: FUNCTIONAL
在上面的示例中,该函数接受一个字符串,并且还返回一个字符串。
从上面的接口可以很容易地理解,UnaryOperator接受单个参数并返回单个参数,但是输入和输出参数应该具有相同的相似类型。
另一方面,BinaryOperator接受两个参数并返回一个类似于BiFunction的参数,但所有输入和输出参数的类型应为相似的类型。
分别给出了UnaryOperator和BinaryOperator接口的以下示例。
查找以下代码示例:-
上面只是一个简单的示例,但是它可以用于复杂的业务场景中。对于上述所有方案,请从此处下载示例代码。
原文链接:http://codingdict.com