当我将Java类定义为Serializable时,Eclipse并没有警告我某些成员不是Serializable,这可能导致应用程序无法序列化@ runtime。
我找不到任何设置来启用成员验证。
如何验证Serializable类的成员是否也可以序列化?
由于
答案 0 :(得分:0)
假设没有人想出直接在eclipse中做到这一点的方法,我会建议它有一个规则SerializableIdiom
的FindBugs插件,我相信这应该突出你担心的问题。
如果需要,我可以添加有关规则的更多详细信息。他们很难在这里显示格式,所以我放弃了将它们添加到原始答案中
答案 1 :(得分:0)
引用一个不是Serializable的类型是合法的,它最终会在运行时指向一个可序列化的对象:
import java.io.Serializable;
public class Test implements Serializable {
private Object data;
public void setData(Object data) {
this.data = data;
}
}
如果你后者写了类似的东西:
private Object data;
public void setData(Object data) {
this.data = data;
}
序列化t1没有问题,但会在t2上爆炸。