我定义了可序列化的类,并且它具有java.util.List类型的成员。在声纳中显示为“ Serializable”类中的字段应该是瞬态或可序列化的”错误
但是这些成员的实际实现是可序列化的ArrayLists。
public class TestDataClass implements Serializable {
List<String> listMember = new ArrayList();
}
答案 0 :(得分:1)
请确保根据RSPEC-1948将Collection
字段标记为 private
:
此规则在不可序列化字段以及 收集字段不是私有的(因为它们可以是 外部分配了不可序列化的值),以及在类中为其分配了不可序列化的类型时。
并指定类型,而不使用原始类型ArrayList
,例如:
private List<String> listMember = new ArrayList<>(); // notice '<>' for 'ArrayList<String>'