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?
加载它?
我用Objectin / outputstream尝试了不同的方法
它以NotSerializable,ObjectSteam和IO异常结束
我不知道如何处理它们。
答案 0 :(得分:2)
只有Serializable
个类可以序列化:只需将implements Serializable
添加到您的班级:
public class BarrackData implements Serializable {
请注意,要实际 序列化,类中的所有字段必须为Serializable
,但java基元,数组(如果元素类型为Serializable
),java.lang
类(如String
)和Collections
(如果元素类型为Serializable
)为Serializable
,那么您就可以了。
答案 1 :(得分:0)
你必须使你的Object类可序列化(给它serialize()和deserialize()方法,将它转换成一个字符串或一些可以保存/加载的方法)。显然,HashMaps可以促进开箱即用的一定程度的序列化。
以下是Java序列化教程的链接:http://www.tutorialspoint.com/java/java_serialization.htm
这里有一些关于HashMap序列化的更详细信息: Serializing and deserializing a map with key as string
波西米亚人提到,实施Serializable
是实现这一目标的标准方法。
答案 2 :(得分:0)
要完成答案,请注意属于keySet()
HashMap
的结果(如果您在任何时候需要)不是Serializable
。
实际上,密钥不应与HashMap
有关的值分开。