为什么这个与lambda相关的代码片段在Java 8中有效?

时间:2017-11-01 03:51:13

标签: java lambda java-8 functional-interface

以下是我的lambda将定位的简单界面。

@FunctionalInterface
interface Converter<F, T> {
  T convert(F from);
}

以下是我在下面代码的第一行中定位的lambda。

Converter<String, Integer> converter = (from) -> Integer.valueOf(from);
Integer converted = converter.convert("123");
System.out.println(converted);

语法方面,我甚至可以进一步简化我的目标线:

Converter<String, Integer> converter = Integer::valueOf;

我的问题是关于Integer中静态方法valueOf()的引用。 (即Integer :: valueOf)

为什么它的存在在这里取代lambda?是因为lambda在那里(隐藏)而lambda正在为convert()提供一个方法体 通过&#34;借用&#34;来自其他地方的现有主体(即整数类),而不是明确定义主体?

0 个答案:

没有答案