这可能很简单,但是我找不到使用Arrays.asList创建List后无法直接开始流的答案。 'list'工作正常,但'list2'无效,IntelliJ没有帮助
List<Book> list = Arrays.asList(lalka,dziady,chlopi,jutrzenka);
list.stream()
.map((Book var)-> var.getAuthor().getName())
.forEach(var-> System.out.println(var));
List<Book> list2 = Arrays.asList(lalka, dziady).stream()
.map((Book var) -> var.getAuthor().getName())
.forEach(var-> System.out.println(var));
答案 0 :(得分:1)
您的流管道不返回任何内容(终端操作forEach
的返回类型为void
),因此您无法将其分配给List
变量。
您可以写:
Arrays.asList(lalka, dziady)
.stream()
.map((Book var) -> var.getAuthor().getName())
.forEach(var-> System.out.println(var));
答案 1 :(得分:0)
您正在尝试将.forEach
的结果分配给List<Book> list2
变量。
.forEach(...)
的类型为void
。
删除此不必要的任务。
答案 2 :(得分:0)
问题在于分配给列表list2。 您可能会收到错误,无法将void转换为list 因为 .forEach()不返回任何内容。
删除对list2的赋值,即可编译并正常运行。