Mic*_*213 1 java-8 java-stream
我正在 Java8 中工作/测试流,遇到了非常令人沮丧的问题。我有编译好的代码:
List<String> words = Arrays.asList("Oracle", "Java", "Magazine");
List<String> wordLengths = words.stream().map((x) -> x.toUpperCase())
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
第二个(几乎相同)抛出警告:
List<String> words = Arrays.asList("Oracle", "Java", "Magazine");
List<String> wordLengths = words.stream().map((x) -> {
x.toUpperCase();
}).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
警告:
The method map(Function<? super String,? extends R>) in the type Stream<String> is not applicable for the arguments ((<no type> x) -> {})
Run Code Online (Sandbox Code Playgroud)
这个额外的括号有什么变化?
您的 lambda 表达式返回一个值。如果使用方括号,则需要向 lambda 函数添加 return 语句:
List<String> words = Arrays.asList("Oracle", "Java", "Magazine");
List<String> wordLengths = words.stream().map((x) -> {
return x.toUpperCase();
}).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2837 次 |
| 最近记录: |