所以我的实体看起来像这样:
public class HappyClass<T>
{
private String id;
prviate int ver;
private Object obj;
public String getId()
{
return this.id;
}
public void setId( String id )
{
this.id = id;
}
public int getVer()
{
return this.ver;
}
public void setVer( int ver )
{
this.ver = ver;
}
@JsonTypeInfo( use = Id.NONE )
public T getObj()
{
return obj;
}
public void setObj( T obj )
{
this.obj = obj;
}
}
public class HappyGeneric
{
private String someStuff();
public String getSomeStuff()
{
return this.someStuff();
}
public void setSomeStuff( String someStuff )
{
this.someStuff = someStuff;
}
}
如果我实例化这样的类:
HappyClass<HappyGeneric> hc = new HappyClass<HappyGeneric>();
如果我以@ResponseBody
将其发送给Spring,则会返回:
{
"id" : "iamsomeid",
"ver" : 123,
"obj" : {
"someStuff" : "iamsomestuff"
}
}
然而,当Spring和/或Jackson尝试解组相同的JSON时,它会发现主要类是HappyClass
,但getObj()
它解组为LinkedHashMap
并且不一个HappyGeneric
,无论我似乎用它注释。
任何人都有任何想法如何迫使杰克逊解放原始类的通用名单?
谢谢!
编辑:我知道我可以调用mapper.convertValue( blah.getObj(), HappyGeneric.class )
并以这种方式获取对象 - 我希望让Spring自动解决它(例如通过注释)。