我一直只使用 Java 6,现在正在赶上学习 Java 8 的新功能。我在这里阅读了这篇文章: http ://www.drdobbs.com/jvm/lambda-expressions-in-java-8 /240166764?pgno=2
它说:
Java API 在 java.util.function 包中定义了几个通用功能接口。其中一个接口 BiFunction 描述了具有参数类型 T 和 U 以及返回类型 R 的函数。您可以将我们的字符串比较 lambda 保存在该类型的变量中:
BiFunction<String, String, Integer> comp
= (first, second) -> Integer.compare(first.length(), second.length());
但是,这并不能帮助您进行排序。没有需要 BiFunction 的 Arrays.sort 方法。如果您以前使用过函数式编程语言,您可能会觉得这很奇怪。但是对于 Java 程序员来说,这很自然。诸如 Comparator 之类的接口具有特定用途,而不仅仅是具有给定参数和返回类型的方法。Java 8 保留了这种风格。当您想使用 lambda 表达式做某事时,您仍然希望牢记表达式的用途,并为其提供特定的功能接口。
但是,当我看到这个线程时: How do you assign a lambda to a variable in Java 8?
那里的问题的答案建议完全按照引用的段落所说的做你不能做的事情。
那么,文章中的信息是不正确的,还是我在这里误读了什么?
谢谢!