此代码编译时没有javac
的问题,但在Eclipse中它会出现以下错误:
Type mismatch: cannot convert from Set<Object> to Set<String>
问题是什么? javac是版本1.8.0_101
,Eclipse正在使用JRE System Library [JavaSE-1.8]
。
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
public class Test
{
public class Foo {
public List<Bar> bars;
}
public class Bar {
public String baz;
}
public static void main(String[] args) {
List<Foo> list = null;
Set<String> set = list.stream()
.flatMap(x -> x.bars.stream().map(y -> y.baz))
.collect(Collectors.toSet());
}
}