HashMap
public Map<String, BarrackData> barrack = new HashMap<String, BarrackData>();
BarrackData.java
public class BarrackData {
int A;
int B;
int C;
int D;
int E;
String Title;
public BarrackData(int a, int b, int c, int d, int e, String title) {
A = a;
B = b;
C = c;
D = d;
P = p;
Title = title;
}
如何保存此HashMap?然后装上它?
我尝试了不同的方法来处理对象/输出流,
它以NotSerializable、ObjectSteam和IO异常而告终,
我完全不知道该怎么处理他们。
发布于 2012-10-23 18:28:58
只有Serializable
类可以序列化:只需将implements Serializable
添加到您的类中:
public class BarrackData implements Serializable {
请注意,要真正序列化,类中的所有字段都必须是Serializable
,但是java原语、数组(如果元素类型是Serializable
)、java.lang
类(如String
)和Collections
(如果元素类型是Serializable
)都是Serializable
,所以没问题。
发布于 2012-10-23 18:30:08
您必须使您的对象类可序列化(为其提供serialize()和deserialize()方法,这些方法可将其转换为字符串或可保存/加载的字符串或类似的内容)。显然,HashMaps在一定程度上促进了开箱即用的序列化。
这里有一个关于Java序列化教程的链接:http://www.tutorialspoint.com/java/java_serialization.htm
下面是一些关于HashMap序列化的更详细的信息:Serializing and deserializing a map with key as string
正如波西米亚人提到的,实现Serializable
是实现这一点的标准方法。
发布于 2012-10-23 18:30:27
要完成答案,请注意属于HashMap
的keySet()
的结果(如果您在任何时候需要它)不是Serializable
。
实际上,键不应该与与HashMap
相关的值分离。
https://stackoverflow.com/questions/13036763
复制