未为Grouping类型定义flatMapping((<no type =“”> dish)-> {},toSet())方法

时间:2019-02-03 17:14:55

标签: java java-8 java-stream collectors

我正在使用Java 8,第30行的代码出现以下错误

  

对于分组类型,未定义flatMapping((dish)-> {},toSet())方法

public class Grouping {
    enum CaloricLevel { DIET, NORMAL, FAT };

    public static void main(String[] args) {
        System.out.println("Dishes grouped by type: " + groupDishesByType());
        System.out.println("Dish names grouped by type: " + groupDishNamesByType());
        System.out.println("Dish tags grouped by type: " + groupDishTagsByType());
    }


    private static Map<Type, List<Dish>> groupDishesByType() {
        return Dish.menu.stream().collect(groupingBy(Dish::getType));
    }

    private static Map<Type, List<String>> groupDishNamesByType() {
        return Dish.menu.stream().collect(groupingBy(Dish::getType, mapping(Dish::getName, toList())));
    }


    private static String groupDishTagsByType() {
/*line:30*/ return menu.stream().collect(groupingBy(Dish::getType, flatMapping(dish -> dishTags.get( dish.getName() ).stream(), toSet())));
    }
}

enter image description here

1 个答案:

答案 0 :(得分:1)

这可能是因为您期望在那里有错误的返回类型,所以方法的实现应类似于:

<NavLink>

注意 :我已将变量作为参数提供,仅用于答案。

重要 flatMapping API in Collectors Java-9 引入的。