Java 8函数式编程2.4 函数接口_Java 8函数式编程2.4 函数接口试读-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > Java 8函数式编程 > 2.4 函数接口

Java 8函数式编程——2.4 函数接口

函数接口是只有一个抽象方法的接口,用作Lambda 表达式的类型。 在Java 里,所有方法参数都有固定的类型。假设将数字3 作为参数传给一个方法,则参数的类型是int。那么,Lambda 表达式的类型又是什么呢? 使用只有一个方法的接口来表示某特定方法并反复使用,是很早就有的习惯。使用Swing编写过用户界面的人对这种方式都不陌生,例2-2 中的用法也是如此。这里无需再标新立异,Lambda 表达式也使用同样的技巧,并将这种接口称为函数接口。例2-8 展示了前面例子中所用的函数接口。 例2-8 ActionListener 接口:接受ActionEvent 类型的参数,返回空 public interface ActionListener extends EventListener { public void actionPerformed(ActionEvent event); } ActionListener 只有一个抽象方法:actionPerformed,被用来表示行为:接受一个参数,返回空。记住,由于actionPerformed 定义在一个接口里,因此abstract 关键字不是必需的。该接口也继承自一个不具有任何方法的父接口:EventListener。 这就是函数接口,接口中单一方法的命名并不重要,只要方法签名和Lambda 表达式的类型匹配即可。可在函数接口中为参数起一个有意义的名字,增加代码易读性,便于更透彻地理解参数的用途。 这里的函数接口接受一个ActionEvent 类型的参数,返回空(void),但函数接口还可有其他形式。例如,函数接口可以接受两个参数,并返回一个值, 还可以使用泛型,这完全取决于你要干什么。 以后我将使用图形来表示不同类型的函数接口。指向函数接口的箭头表示参数,如果箭头从函数接口射出,则表示方法的返回类型。ActionListener 的函数接口如图2-1 所示。 图2-1:ActionListener 接口,接受一个ActionEvent 对象,返回空 使用Java 编程,总会遇到很多函数接口,但Java 开发工具包(JDK)提供的一组核心函数接口会频繁出现。表2-1 罗列了一些最重要的函数接口。 表2-1 Java中重要的函数接口 接口参数返回类型示例 Predicate<T> T boolean 这张唱片已经发行了吗 Consumer<T> T void 输出一个值 Function<T,R> T R 获得Artist 对象的名字 Supplier<T> None T 工厂方法 UnaryOperator<T> T T 逻辑非( !) BinaryOperator<T> (T, T) T 求两个数的乘积( *) 前面已讲过函数接口接收的类型,也讲过javac 可以根据上下文自动推断出参数的类型,且用户也可以手动声明参数类型,但何时需要手动声明呢?下面将对类型推断作详尽说明。

展开全文


推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

《Java 8函数式编程》其他试读目录

• 2.1 第一个Lambda表达式
• 2.2 如何辨别Lambda表达式
• 2.3 引用值,而不是变量
• 2.4 函数接口 [当前]
• 2.5 类型推断
• 2.6 要点回顾
• 2.7 练习
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •