HashMap
z kluczem/wartością Serializable
ma być Serializable
.HashMap nie Serializable
Ale to nie działa dla mnie. Próbowałem innych strumieni IO. Żadne nie działa.
Jakieś sugestie?
kod testowy
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);
}
}
Ślad stosu
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
Próbowałem go na moim local.it przebiega bez exception.It wydaje się, że nie są odpowiednie importowania plików klas? Czy możesz to udostępnić? Odpoczynek wygląda dla mnie dobrze. –
Nie pisz "nowego ciągu (" klucz ")', wystarczy napisać '" klawisz "'. Dosłowny, taki jak "klucz", jest już obiektem 'String'. Nie musisz jawnie tworzyć kopii tego obiektu 'String'. – Jesper