私が書いたコードに問題があります。それは私のMac上で正常にコンパイルされます(Java 8 Update 121ビルド1.8.0、Nanoテキストエディタ、JavaコマンドラインコンパイラjavacとJavaのみ)が、別のマシンで何らかの理由でコンパイルされません。他のマシンで1台のマシンでコンパイルされ、別のマシンではコンパイルされないJavaコード
、問題は次の行から茎:
public class SomeClass {
...
public static HashMap<String, ArrayList<HashSet<String>>> conversationRecord = new HashMap<>();
...
public static someMethod() {
...
//This produces errors
conversationRecord.put(uuid, new ArrayList<>());
conversationRecord.get(uuid).add(0, new HashSet<>());
conversationRecord.get(uuid).add(1, new HashSet<>());
}//end method
}//end class
エラーは、次のように読み取ります
java:279: error: no suitable method found for put(String,ArrayList<Object>)
conversationRecord.put(uuid, new ArrayList<>());
^
method HashMap.put(String,ArrayList<HashSet<String>>) is not applicable
(actual argument ArrayList<Object> cannot be converted to ArrayList<HashSet<String>> by method invocation conversion)
method AbstractMap.put(String,ArrayList<HashSet<String>>) is not applicable
(actual argument ArrayList<Object> cannot be converted to ArrayList<HashSet<String>>
上記のコードは、時間の私のMacは100%にコンパイルし、別のマシンではまったくコンパイルされません。
これはなぜ起こっているのかについての洞察はありますか?
conversationRecord.put(uuid, new ArrayList<>());
しかし、上:(脇:彼らはJavaプログラムをコンパイルし、実行している以外にも、私は他の人のセットアップについては何も知らない)
両方のマシンでjava -versionを実行し、メジャーバージョンが他のマシンに同じ –
がインストールされているかどうかを確認してください。 – Eftakhar
これはエラーメッセージの完全なセットですか?早く失敗するものが原因であるようです。 –