java中带有json子类型的泛型
我有一个服务,其中我使用具有以下结构的实体java中带有json子类型的泛型,java,json,generics,Java,Json,Generics,我有一个服务,其中我使用具有以下结构的实体 @Entity public class Product { @Id private Integer id; private String productId; private List<MobileCompany<?>> companies; // ... } public class MobileCompany<T> extends Company<T>
@Entity
public class Product {
@Id
private Integer id;
private String productId;
private List<MobileCompany<?>> companies;
// ...
}
public class MobileCompany<T> extends Company<T> {
private static final long serialVersionUID = -4809948191835736752
private String simType;
// ....
}
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(name= "samsung", value = Samsung.class),
@JsonSubTypes.Type(name= "htc",value = Htc.class)})
public class Company<T> implements Serializable {
private static final long serialVersionUID = -8869676577723436716L;
private T info;
private String type;
// ...
}
请求如下
{
id:0903673902783,
companies:[
{
simType:"DUAL",
type:"samsung"
}
]
}
然后回到回应之下
{
id:0903673902783,
companies:[
{
simType:"DUAL",
type:"MobileCompany"
}
]
}
为什么我的打字是“MobileCompany”而不是“samsung”
注意:“MobileCompany”是扩展公司的类的名称,在响应中,我将“MobileCompany”作为类型,而不是请求中指定的类型。产品有MobileCompany的列表。这篇文章中缺少一些相关的代码部分。你能指出一些缺少代码的例子吗?由于这就是我所得到的全部,在实体结构的情况下,我只删除了getter和setter。例如,字符串
“MobileCompany”
没有找到。代码的某些部分必须放在那里。“MobileCompany”实际上是扩展公司的类的名称,在响应中,我得到的是“MobileCompany”作为类型,而不是请求中指定的类型。产品有移动公司的列表,我已经更新了问题以便更好地理解。不要在评论中添加更多信息。更新你的问题。阅读。这篇文章缺少一些相关的代码部分。你能指出一些缺少代码的例子吗?由于这就是我所得到的全部,在实体结构的情况下,我只删除了getter和setter。例如,字符串“MobileCompany”
没有找到。代码的某些部分必须放在那里。“MobileCompany”实际上是扩展公司的类的名称,在响应中,我得到的是“MobileCompany”作为类型,而不是请求中指定的类型。产品有移动公司的列表,我已经更新了问题以便更好地理解。不要在评论中添加更多信息。更新你的问题。阅读。
{
id:0903673902783,
companies:[
{
simType:"DUAL",
type:"MobileCompany"
}
]
}