我在java7中有项目,我现在想要转换为java8。
因为我有一个代码调用我已经转换为Java 8的方法,如下所示。
JAVA 7:
Long id=10;
Student student= Student.findById(id);
JAVA 8
Long id=10;
Function<Long,Student> f=Student::findById;
f.apply(id);
现在我的问题是将这些方法调用转换为 JAVA 8 是没有意义的。
如果是这样,JAVA 7和JAVA 8中的上述代码有什么区别。
任何人都可以澄清这个???
答案 0 :(得分:2)
在Java 7示例中,您将在第2行调用findById()并将结果分配给student。通过在Java 8代码中使用方法引用,首先保存对f中方法findById()的引用,并在第3行中调用该方法。方法引用使您能够延迟方法的调用。与Streams结合使用,您可以通过这种方式实现laziness。
对于你的例子,使用方法参考没有意义,因为它们不会给你带来任何好处。如果要将方法引用传递给其他函数或延迟调用,则使用方法引用是有意义的。否则,您只需使用显式应用调用来混乱您的代码。
我建议查看功能示例的Java 8介绍。我读过这本书Functional Programming in Java,只能推荐它。