2016-08-01 6 views
2

ストリームをリストに変換したい。私は、このコードを試してみました実行します。ストリームをリストに変換する

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.of

IはStream.of方法を使用するたびに、毎回起こる

としてアクセスすることができます。

誰かが私を助けてくれますか?

+1

に関する情報を提供しています。あなたの最初のスニペットはEclipse上で動作します。 – Eran

+0

@Eranあなたが使っているJREのバージョンは何ですか?私は1.8.0_91を持っています。 –

+0

「このストリームの静的メソッドはStream.ofとしてしかアクセスできません。 'stream.of'を書くとインスタンスから静的メソッドにアクセスしようとしています。そしてStream.of(ストリーム)は私にはあまり意味がありません... – Fildor

答えて

1

また、IDEでの言語レベルのプロジェクトの設定を確認してくださいあなたはJavaコンパイラ言語レベルを使用すること8. より低いが

javac -source 8 

と、コマンドラインからコンパイルしてみ思われます。例えば

、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> 
+0

神様私はそんなに気が気になりません、はい、これはコンパイラのバージョンの問題でした。私はコンパイラのバージョンをチェックせずにライブラリを変更し続けました。 –

関連する問題