I tried the following code using Java 8 streams:
Arrays.asList("A", "B").stream()
.flatMap(s -> Arrays.asList("X", "Y").stream().map(s1 -> s + s1)).collect(Collectors.toList());
What I get is a List<Object>
while I would expect a List<String>
. If I remove the collect and I try:
Arrays.asList("A", "B").stream().flatMap(s -> Arrays.asList("X", "Y").stream().map(s1 -> s + s1));
I correctly get a Stream<String>
.
Where am I wrong? Can someone help me?
Many thanks in advance.
Edit:
The problem is due to Eclipse (now using Kepler SR2 with java 8 patch 1.0.0.v20140317-1956). The problem does non appear if compiling using javac or, as commented by Holger, using Netbeans