2016-08-03 66 views
0

我有项目在java7中,我现在想转换为java8。什么时候在JAVA中使用功能接口8

因为我有一个代码,它调用了我已经转换为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

谁能请澄清这???

+2

不建议将每条线都转换为具有新的Java 8功能。有时它可能会弄乱你的*旧代码*。 –

回答

2

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

对于您的示例,使用方法引用没有意义,因为它们不会给您带来任何好处。如果要将方法引用传递给其他函数或延迟调用,则可以使用方法引用。否则,你只需用明确的应用程序调用来清理你的代码。

我推荐看一下Java 8的介绍,其中有些例子。我读了Functional Programming in Java这本书,只能推荐它。

+0

感谢您的帮助! – Prakash

相关问题