我有一个问题,因为我有点困惑(或者我可能没有注意到一些明显的事情)。假设我有一些源代码,其中包含很多类,其中包含大量像这样定义的静态字段:
public final class ConverterTYPE {
private final static HashMap<String, Byte> STRING_MAP = new HashMap<String, Byte>() {
{
put("A", new Byte((byte)12));
put("B", new Byte((byte)13));
}
};
}
众所周知,静态字段不会被序列化。
但是,Java(和 Eclipse)抱怨“可序列化的类没有声明 long 类型的静态最终 serialVersionUID 字段”。为什么他们没有注意到 static 不会被序列化?
@SuppressWarnings("serial")
下一个问题:用它来消除所有此类警告是否是解决此问题的正确方法?
编辑:
我的类都没有实现 Serializable 接口(或者它们的超类都没有)。并且 Eclipse 正HashMap<String, Byte>
用它的警告指出。为什么它没有检测到它是静态场?