我想将流转换为列表。为此,我尝试了这段代码:
try(Stream<String> stream = Files.lines(Paths.get(args[0]))) {
List<String> lines = stream.collect(Collectors.toList());
}
然后编译器告诉我:
类型不匹配:无法从
List<Object>
转换为List<String>
我也是这样试过的:
try(Stream<String> stream = Files.lines(Paths.get(args[0]))) {
List<String> lines = Stream.of(stream).collect(Collectors.toList());
}
但是我有这个错误:
这种接口Stream的静态方法只能作为Stream.of
访问
每当我使用Stream.of方法时,每次都会发生。
有人可以帮帮我吗?
答案 0 :(得分:1)
似乎您使用的Java编译器语言级别低于8。 尝试使用
从命令行进行编译javac -source 8
同时检查IDE中的语言级别项目设置。
例如,IDEA 2016的输出隐藏了有关已使用语言级别的信息,但提供了有关javac版本的信息
Information:Using javac 1.8.0_101 to compile java sources
Information:java: Errors occurred while compiling module 'demo_04'
Information:8/1/16 2:13 PM - Compilation completed with 1 error and 0 warnings in 1s 403ms
/tmp/1/src/JavaStreamExample.java
Error:(16, 49) java: incompatible types: java.util.List<java.lang.Object> cannot be converted to java.util.List<java.lang.String>