这两天依领导要求使用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
}
欧了:)