Serializable接口使用纪实

这两天依领导要求使用sonar工具测试了一下项目代码,其中有一个问题是

而这个类的结构大概是这样的:

public class Demo<T> implements Serializable {
        private List<T> list;

        // constructor、getter、setter     
}

错误提示要么加“transient”关键字要么让list属性实现Serializable接口,显然前者不合适因为我们的“T”们需要做持久化,于是就需要Serializable了。

咋写呢?List<T implements Serializable> list;?报错;把类声明行的泛型写成<T implements Serializable> 也不行。。。

上网查了一下,原来限定泛型类型需要用 extends 关键字,所以代码做如下修改:

public class Demo<T extends Serializable> implements Serializable {

        private List<T> list;

        // constructor、getter、setter     
}

欧了:)

原文地址:https://www.cnblogs.com/GoQC/p/5872383.html