Следующий код отлично работает во всех онлайн-компиляторах java, но eclipse генерирует ошибку компилятора. Это ошибка в затмении или я где-то не хватает какой-то настройки? Простое исправление, чтобы заставить замолчать затмение? онлайн: https://ideone.com/l0bbhz. Примечание. Это упрощенный подготовленный пример, чтобы просто указать на проблему. Я понимаю, что flatMap
в этом случае не требуется. В самом деле мне действительно нужно flatMap
package dummy;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import static java.util.stream.Collectors.toList;
public class LearnJava {
public static void main(String[] args) {
String[] sa = {"ne", "two", "three"};
List<String> l = Arrays.stream(sa)
.flatMap(s -> Collections.singleton(s).stream().map(c -> c.toUpperCase()))
.collect(toList());
System.out.println(l.get(0));
}
}
Ошибка в консоли eclipse.
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Type mismatch: cannot convert from List<Object> to List<String>
at dummy.LearnJava.main(LearnJava.java:13)
Моя версия затмения:
Eclipse Java EE IDE для веб-разработчиков.
Версия: Luna Service Release 2 (4.4.2) Идентификатор сборки: 20150219-0600
Обновление. Я пошел с этим небольшим обходным решением. Он работает без большого рефакторинга!
.flatMap(s -> Collections.singleton(s).stream().map(c -> c.toUpperCase()))
Для
.<String>flatMap(s -> Collections.singleton(s).stream().map(c -> c.toUpperCase()))