小编Leo*_*hko的帖子

为什么.forEach(val - > list.add())编译而.forEach(val - > true)不编译?

最好在代码中表达这种行为:

List<Integer> list= new ArrayList<>();
Stream.of(1,2,3).forEach(i -> list.add(1));  // COMPILES

Stream.of(1,2,3).forEach(i -> true);  // DOES NOT COMPILE!
Run Code Online (Sandbox Code Playgroud)

forEach(...)接受Consumer,但为什么第一个例子编译如果List接口有以下签名boolean add(E e)?而第二个收益率:

lambda表达式中的错误返回类型:boolean无法转换为void

java compiler-errors java-8 java-stream

7
推荐指数
1
解决办法
257
查看次数

标签 统计

compiler-errors ×1

java ×1

java-8 ×1

java-stream ×1