簡體   English   中英

為什么我不能用.forEach() 打印對象?

[英]Why I can't print objects with .forEach()?

我正在嘗試使用流按國籍對我的對象進行分組並將它們打印出來。
但它說:“無法解析方法'println”

class Person {

    private String name;
    private int age;
    private String nationality;

public static  void groupByNationality(List<Person> people) {
     people
        .stream()
        .collect(Collectors.groupingBy(Person::getNationality))
        .forEach(System.out::println);
    }

.collect(Collectors.groupingBy(Person::getNationality))是返回Map<String,List<Person>>的終端操作。

MapforEach需要BiConsumer<? super K, ? super V> action BiConsumer<? super K, ? super V> action BiConsumer<? super K, ? super V> action參數,它需要一個帶有兩個 arguments 的方法。 這不符合System.out::println的簽名(所有println方法都有一個參數)。

你可以改變

.forEach(System.out::println);

.forEach((key,value)->System.out.println (key + ":" + value));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM