java中的这个语法是什么?

问题描述:

我找到一个语法String [] :: newthis答案。 但我在谷歌搜索找不到有用的信息。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使得语言不那么冗长。