【发布时间】:2009-06-16 21:03:51
【问题描述】:
我已经完成了所有域级逻辑并将其编程为接口。现在我发现当我想将数据放入一个 bean 时,这个 bean 不起作用,因为 Collection 接口(Collection、List、Set 等)没有实现 Serializable。
我需要重构我的所有代码以使用具体类型还是这里有更好的操作方案?
【问题讨论】:
标签: java serialization collections interface javabeans
我已经完成了所有域级逻辑并将其编程为接口。现在我发现当我想将数据放入一个 bean 时,这个 bean 不起作用,因为 Collection 接口(Collection、List、Set 等)没有实现 Serializable。
我需要重构我的所有代码以使用具体类型还是这里有更好的操作方案?
【问题讨论】:
标签: java serialization collections interface javabeans
如果你的类实现了Serializable 并且它的所有成员都是可序列化的,那么对象就可以被正确序列化。示例:
public class Person implements Serializable {
private String name;
private Collection<Integer> luckyNumbers = new ArrayList<Integer>();
}
只要luckyNumbers的实例是可序列化的(如ArrayList),其成员是可序列化的(本例为Integers),那么对象就会被序列化。
【讨论】:
Serializable 是一个“标记”接口。不适合用作引用的类型。使用一些动态类型(尽管没有什么可以阻止您使用外部静态类型检查器)。
你可以用奇怪的参数化泛型方法跳过箍,但这会非常难看,而且 Java 库不会这样做,所以无论如何你都会被淹没。
【讨论】: