Этот код не компилируетсяCollectors.toMap не компилируется
List<String> pairs = new ArrayList<>();
System.out.println(pairs.stream().collect(Collectors.toMap(x -> x.split("=")[0], x -> x.split("=")[1])));
ошибку компиляции: Метод сплит (String) не определено для ошибки Тип объекта в System.out.println (пары .stream(). collect (Collectors.toMap (x -> x.split ("=") [0], x -> x.split ("=") [1])));
Но это одна отлично компилируется
List<String> pairs = new ArrayList<>();
Map<String,String> map = pairs.stream().collect(Collectors.toMap(x -> x.split("=")[0], x -> x.split("=")[1]));
System.out.println(map);
Может кто-нибудь объяснить, почему?
Дополнительная информация
Это было IntelliJ 12; jdk1.8.0_11; windows 64
Обе версии скомпилированы и работают нормально на моем jdk1.8.0_20. Какую версию jdk вы используете? – Misha
Невозможно воспроизвести: либо у вас есть старая версия jdk, либо вы используете другой компилятор (eclipse?). – assylias
@All: Это воспроизводится с помощью Eclipse. Я использую новую версию Luna. Компилятор Eclipse показывает эту ошибку компилятора. Использование простой команды «javac ...» компилируется просто отлично. – Seelenvirtuose