Java基本类型对象反序列化自动广播问题

时间:2018-08-18 04:34:05

标签: java oop serialization syntax deserialization

我上了这个课:

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。

为什么会这样?

0 个答案:

没有答案