我已经完成了所有域级逻辑并将其编程为接口。现在我发现当我想将数据放入一个 bean 中时,这个 bean 不起作用,因为 Collection 接口(Collection、List、Set 等)没有实现 Serializable。
我是否需要重构所有代码以使用具体类型,或者这里有更好的行动方案?
我已经完成了所有域级逻辑并将其编程为接口。现在我发现当我想将数据放入一个 bean 中时,这个 bean 不起作用,因为 Collection 接口(Collection、List、Set 等)没有实现 Serializable。
我是否需要重构所有代码以使用具体类型,或者这里有更好的行动方案?
如果您的类实现Serializable
并且其所有成员都是可序列化的,则可以正确序列化该对象。例子:
public class Person implements Serializable {
private String name;
private Collection<Integer> luckyNumbers = new ArrayList<Integer>();
}
只要luckyNumbers
' 的实例是可序列化的(例如ArrayList
),并且其成员是可序列化的(在本例中为Integer
s),那么对象就会序列化。
Serializable
是一个“标记”界面。不适合用作引用的类型。使用一些动态类型(尽管没有什么可以阻止您使用外部静态类型检查器)。
你可以用奇怪的参数化泛型方法跳过箍,但这会非常难看,Java 库不会这样做,所以无论如何你都会被淹没。