HashMap
avec Serializable
La clé/valeur est supposée être Serializable
.HashMap non sérialisable
Mais ça ne marche pas pour moi. J'ai essayé d'autres flux IO. Aucun ne fonctionne.
Une suggestion?
Code d'essai
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);
}
}
trace de la pile
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
Essayé sur mon local.it fonctionne sans exception.It vous semble n'êtes pas d'importer des fichiers de classe appropriés? Pouvez-vous partager cela? Le reste me va bien. –
N'écrivez pas 'new String (" key ")', écrivez simplement "key" '. Un littéral tel que «key» est déjà un objet «String». Vous n'avez pas besoin de créer explicitement une copie de cet objet 'String'. – Jesper