0

我在 java7 中有项目,我现在正在尝试将其转换为 java8。

在那我有一个代码调用一个我已经转换为Java 8的方法,如下所示。

爪哇 7:

Long id=10;
Student student= Student.findById(id);

爪哇 8

Long id=10;
Function<Long,Student> f=Student::findById;
f.apply(id);

现在我的问题是将这些方法调用转换为JAVA 8没有任何意义。

如果是这样 JAVA 7 和 JAVA 8 中的上述代码有什么区别。

任何人都可以请澄清这一点???

4

1 回答 1

2

在您的 Java 7 示例中,您在第 2 行调用 findById() 并将结果分配给学生。通过在 Java 8 代码片段中使用方法引用,您首先在 f 中保存对方法 findById() 的引用,然后在第 3 行调用该方法。方法引用使您能够延迟方法的调用。与 Streams 结合使用,您可以通过这种方式实现惰性

对于您的示例,使用方法引用没有任何意义,因为它们不会给您带来任何好处。如果您想将方法引用传递给其他函数或延迟调用,则使用方法引用可能是有意义的。否则,您只会使用显式的应用调用使代码混乱。

我建议查看包含示例的 Java 8 介绍。我读过Java 中的函数式编程一书,只能推荐它。

于 2016-08-03T08:59:54.870 回答