HashMap
Serializable
キー/値はSerializable
としています。ハッシュマップがシリアライズ不可
しかし、それは私のために働いていない。いくつかの他のIOストリームを試しました。なし
提案がありますか?
テストコード
public class SimpleSerializationTest {
@Test
public void testHashMap() throws Exception {
HashMap<String, String> hmap = new HashMap<String, String>() {{
put(new String("key"), new String("value"));
}};
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out = null;
out = new ObjectOutputStream(bos);
out.writeObject(hmap);
byte[] yourBytes = bos.toByteArray();
if (out != null) {
out.close();
}
bos.close();
ByteArrayInputStream bis = new ByteArrayInputStream(yourBytes);
ObjectInput in = null;
in = new ObjectInputStream(bis);
Object o = in.readObject();
bis.close();
if (in != null) {
in.close();
}
assertEquals(hmap, o);
}
}
例外メッセージは問題がある正確に何を説明します
java.io.NotSerializableException: SimpleSerializationTest
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
at SimpleSerializationTest.testHashMap(SimpleSerializationTest.java:18)
Process finished with exit code 0
が私のlocal.it上でそれを試みたがいずれかのexception.Itなしで実行されますが、適切なクラスファイルをインポートしていないようですか?あなたはそれを分かち合うことができますか? –
''新しい文字列( "key") 'を書くのではなく、' 'key" 'を書くだけです。 '' key ''のようなリテラルはすでに 'String'オブジェクトです。その 'String'オブジェクトのコピーを明示的に作成する必要はありません。 – Jesper