如何使列表变量的泛型可序列化

koa*_*421 3 java generics list serializable transient

如何制作private List <T> list;或可private Map<String, Value> unknownData; 序列化?这些是我的类中的变量,其父级是可序列化的,但是SonarQube抱怨瞬时或可序列化的更改

myClass.java

public class MyClass implements Serializable {
  private static final long serialVersionUID = 0L;
  protected  List<T>  list = new ArrayList<T>();
Run Code Online (Sandbox Code Playgroud)

SonarQube投诉的屏幕截图

dav*_*xxx 5

在类声明中,使用扩展类型Serializable

例如 :

public class MyClass<T extends Serializable>{ ...
Run Code Online (Sandbox Code Playgroud)

public class MyOtherClass<Value extends Serializable>{ ...
Run Code Online (Sandbox Code Playgroud)

  • 我认为,SonarQube抱怨`List &lt;..&gt;`无法序列化,`&lt;T&gt;`不是问题...`List &lt;..&gt;`必须可序列化(例如`ArrayList`),但是另一方面,该字段应该是最通用的(因此建议使用List &lt;..&gt;)-最后,在运行时需要可序列化性-不必具有可序列化的固定类型的List。 (2认同)