我在Java8中工作/測試流,並遇到非常令人沮喪的問題。 我有這很好編譯的代碼:它拋出一個警告Java8流映射()函數中的其他括號
List<String> words = Arrays.asList("Oracle", "Java", "Magazine");
List<String> wordLengths = words.stream().map((x) -> x.toUpperCase())
.collect(Collectors.toList());
而第二個(幾乎相同):
List<String> words = Arrays.asList("Oracle", "Java", "Magazine");
List<String> wordLengths = words.stream().map((x) -> {
x.toUpperCase();
}).collect(Collectors.toList());
警告:
The method map(Function<? super String,? extends R>) in the type Stream<String> is not applicable for the arguments ((<no type> x) -> {})
這說明什麼額外的括號已經改變了?
如果您正在使用的支架和拉姆達的返回類型不是void,你有你的身體拉姆達供應'return'關鍵字(見也是https://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-LambdaBody) –
這不是'警告',而是一個編譯問題,*完全*不同的東西 – Eugene