-4
我找到一个语法String [] :: new在this答案。 但我在谷歌搜索找不到有用的信息。java中的这个语法是什么?
我找到一个语法String [] :: new在this答案。 但我在谷歌搜索找不到有用的信息。java中的这个语法是什么?
这是一个method reference的构造函数。 ClassName::method
只是使用调用现有方法的lambda表达式(在本例中为new
)而非调用匿名方法的语法。
这实际上是一个拉姆达的简写,是最近才加入到Java:
size -> new String[size]
这又是一个IntFunction速记:
new IntFunction<String[]> {
@Override
String[] apply(int size) {
return new String[size];
}
}
正如你所看到的,这些增加的Java 8使得语言不那么冗长。