4

我已经完成了所有域级逻辑并将其编程为接口。现在我发现当我想将数据放入一个 bean 中时,这个 bean 不起作用,因为 Collection 接口(Collection、List、Set 等)没有实现 Serializable。

我是否需要重构所有代码以使用具体类型,或者这里有更好的行动方案?

4

2 回答 2

5

如果您的类实现Serializable并且其所有成员都是可序列化的,则可以正确序列化该对象。例子:

public class Person implements Serializable {
    private String name;
    private Collection<Integer> luckyNumbers = new ArrayList<Integer>();
}

只要luckyNumbers' 的实例是可序列化的(例如ArrayList),并且其成员是可序列化的(在本例中为Integers),那么对象就会序列化。

于 2009-06-16T21:43:25.067 回答
0

Serializable是一个“标记”界面。不适合用作引用的类型。使用一些动态类型(尽管没有什么可以阻止您使用外部静态类型检查器)。

你可以用奇怪的参数化泛型方法跳过箍,但这会非常难看,Java 库不会这样做,所以无论如何你都会被淹没。

于 2009-06-16T22:08:17.077 回答