Java 如何使泛型类型可序列化?
SonarQube给出了以下错误: 使“类型”暂时或可序列化 在下列班级:Java 如何使泛型类型可序列化?,java,generics,serialization,Java,Generics,Serialization,SonarQube给出了以下错误: 使“类型”暂时或可序列化 在下列班级: @XmlRootElement public class InsuredAmount<T extends IAType> implements Serializable { private static final long serialVersionUID = 1L; private T type; } 使用各种枚举实现,如: public enum OneIAType impleme
@XmlRootElement
public class InsuredAmount<T extends IAType> implements Serializable {
private static final long serialVersionUID = 1L;
private T type;
}
使用各种枚举实现,如:
public enum OneIAType implements IAType, Serializable {
GENERIC
}
该类用于REST接口,因此它应该是可序列化的
我的问题是:
1.我不认为将类型标记为transient是个好主意,因为我是通过REST接口传输这个类的。如果我将此类型标记为瞬态,是否会导致问题?
2.如何使类型可序列化
类型
的值
将类型变量声明为:
编辑:SonarQube似乎未将此建议识别为可序列化类型 它在问题中说接口的实现是枚举;这表明,表达界限的另一种方式是:
<T extends Enum<T> & IAType>
请注意,所有枚举都可以隐式序列化,因此serializable
不必显式位于交叉点类型中
事实证明,这种方法有效,而第一种方法不行:两种类型的引用。(也许这是SonarQube中的一个bug?)
类型
的值
将类型变量声明为:
编辑:SonarQube似乎未将此建议识别为可序列化类型 它在问题中说接口的实现是枚举;这表明,表达界限的另一种方式是:
<T extends Enum<T> & IAType>
请注意,所有枚举都可以隐式序列化,因此serializable
不必显式位于交叉点类型中
事实证明,这种方法有效,而第一种方法不行:两种类型的引用。(可能是SonarQube中的错误?将类型变量声明为:
?将类型变量声明为:
?是否可能重复?反序列化后我需要该字段。我尝试将&Serializable
添加到类型中,但sonarQube错误仍然存在。看起来有人问过同样的问题(但还没有回答)。如果您的IAType
实现都是枚举,您可以声明
?sonarqube是否认识到这是可序列化的?谢谢!这很有效。如果你修改答案,我会接受的!是,我需要反序列化后的字段。我尝试将&Serializable
添加到类型中,但sonarQube错误仍然存在。看起来有人问过同样的问题(但还没有回答)。如果您的IAType
实现都是枚举,您可以声明
?sonarqube是否认识到这是可序列化的?谢谢!这很有效。如果你修改答案,我会接受的!
<T extends Enum<T> & IAType>