dat*_*ree 6 java hashmap serializable
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);
}
}
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪
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
Run Code Online (Sandbox Code Playgroud)
Joh*_*ger 16
异常消息告诉您问题的确切原因:您正在尝试序列化类的实例SimpleSerializationTest,并且该类不可序列化.
为什么?好吧,你已经创建了一个匿名内部类SimpleSerializationTest,一个扩展HashMap,你正在尝试序列化该类的实例.内部类总是引用其外部类的相关实例,并且默认情况下,序列化将尝试遍历这些实例.
我观察到你使用双括号{{ ... }}语法,就像你认为它具有某种特殊意义一样.重要的是要理解它实际上是两个独立的结构.在构造函数调用之后立即出现的外部大括号标记内部类定义的边界.内部对绑定了一个实例初始化块,例如你可以在任何类体中使用(尽管它们在除了匿名内部类之外的上下文中是不常见的).通常,您还可以在初始化程序块之前或之后在外部对中包含一个或多个方法实现/覆盖.
试试这个:
public void testHashMap() throws Exception {
HashMap<String, String> hmap = new HashMap<String, String>();
hmap.put(new String("key"), new String("value"));
// ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14085 次 |
| 最近记录: |