Поток Java не компилируется с функцией метода Locale, почему? - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть это:

Locale locale = new Locale("en", "US", "WIN");//ok
System.out.println(locale.getLanguage());//ok
Stream<Locale> sl = Stream.of(Locale.getAvailableLocales());//ok
Map<String, List<Locale>> map = sl.collect(
    Collectors.partitioningBy(l->l.getLanguage().equals("en")));//error

Ошибка компиляции: не удается разрешить метод "getLanguage ()".

Как это исправить?

1 Ответ

0 голосов
/ 21 ноября 2018

Если вы пытаетесь сгруппировать локали по языку, тогда используйте groupingBy вместо partitioningBy:

Stream<Locale> sl = Stream.of(Locale.getAvailableLocales());
Map<String,List<Locale>> localsPerLanguage = sl.collect(Collectors.groupingBy(Locale::getLanguage));
System.out.println(localsPerLanguage.get("fr"));
...