最好在代码中表达这种行为:
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