我上了这个课:
public class AttrRepository {
private HashMap<String, Object> attributes = new HashMap<>();
@Override
public HashMap<String, Object> save() {
return attributes;
}
@Override
public void load(HashMap<String, Object> serializable) {
this.attributes = serializable;
}
}
使用Java的ObjectOutput和ObjectInput流加载和保存。
使用此方法保存HashMap然后再次加载时,由于某种原因,表值侧的所有内容都变成了字符串。
例如:
attributes.put("strength", 100.0); //set strength to 100.0 as a DOUBLE
attributes.put("age", 0); //set age to 0 as an integer
但是保存并加载后...
Double strength = (Double) attributes.get("strength");
引发转换错误...无法将String转换为Double。
为什么会这样?