-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使得語言不那麼冗長。