Performance 在Java8中何时使用函数接口

Performance 在Java8中何时使用函数接口,performance,java-8,functional-interface,Performance,Java 8,Functional Interface,我有一个java7的项目,我现在正试图将它转换成java8 在这里,我有一个调用方法的代码,我已经将该方法转换为Java8,如下所示 Java7: Long id=10; Student student= Student.findById(id); Java8 Long id=10; Function<Long,Student> f=Student::findById; f.apply(id); Long id=10; 函数f=Student::findById; f、 申请(身

我有一个java7的项目,我现在正试图将它转换成java8

在这里,我有一个调用方法的代码,我已经将该方法转换为Java8,如下所示

Java7:

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

Long id=10;
Function<Long,Student> f=Student::findById;
f.apply(id);
Long id=10;
函数f=Student::findById;
f、 申请(身份证);
现在我的问题是,将这样的方法调用转换为Java8没有任何意义

如果是这样,JAVA 7和JAVA 8中的上述代码之间的区别是什么


有人能澄清一下吗?

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

例如,使用方法引用没有任何意义,因为它们不会给您带来任何好处。如果您想将方法引用传递给其他函数或延迟调用,那么使用方法引用是有意义的。否则,您的代码就会被显式的apply调用弄得乱七八糟


我建议看一下Java8的介绍,其中包含一些示例。我读过这本书,只能推荐它。

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

例如,使用方法引用没有任何意义,因为它们不会给您带来任何好处。如果您想将方法引用传递给其他函数或延迟调用,那么使用方法引用是有意义的。否则,您的代码就会被显式的apply调用弄得乱七八糟


我建议看一下Java8的介绍,其中包含一些示例。我读过这本书,只能推荐它。

不建议将每一行都转换为新的Java 8功能。有时它可能会弄乱你的旧代码,不建议把每一行都转换成新的Java8特性。有时它可能会弄乱你的旧代码。谢谢你的帮助!谢谢你的帮助!