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"
      }
   ]
}