我的代码如下......
@ResponseBody
@RequestMapping(value ="/updateAll", method=RequestMethod.POST)
public JSONObject update( @RequestBody List<T> list){
try{
T entity = list.get(0);
System.out.println(entity.getClass());
dbService.update(entityName + ".update", list);
return jsonResult(null, null, null, 0);
}catch(Exception ex){
return jsonResult(null, null, ex, 0);
}
}
当我通过@RequestBody只获得一个实体时,它返回一个正确的对象名,但上面的代码返回java.util.LinkedHashMap,我不能在iBatis中使用parameterClass的优点。 (抱歉我的英语不好......)
我再次将列表转换为T,但它仍返回LinkedHashMap。
不是代码[T entity = list.get(0); ]意味着它将列表识别为对象T的集合?
@ResponseBody
@RequestMapping(value ="/updateAll", method=RequestMethod.POST)
public JSONObject update( @RequestBody T entity){
try{
System.out.println(entity.getClass());
dbService.update(entityName + ".update", entity);
return jsonResult(null, null, null, 0);
}catch(Exception ex){
return jsonResult(null, null, ex, 0);
}
}
这会毫无问题地打印实体名称。
有人能解释我为什么会这样吗?我可以在哪里了解更多相关信息?
答案 0 :(得分:0)
/**
* Returns the runtime class of this {@code Object}. The returned
* {@code Class} object is the object that is locked by {@code
* static synchronized} methods of the represented class.
*
* <p><b>The actual result type is {@code Class<? extends |X|>}
* where {@code |X|} is the erasure of the static type of the
* expression on which {@code getClass} is called.</b> For
* example, no cast is required in this code fragment:</p>
*
* <p>
public final native Class<?> getClass();
什么参考类型无关紧要。方法getClass()
返回runtime class
。