我想创建一个接受任何类类型并将其发送到另一个方法的方法。然后返回对象:示例:
private Object getObjectFromData(Object object, String data) {
Object o = mapper.readValue(data,Object.class);
return o;
}
这很有效。并且完全符合我的要求。但要调用此函数,我必须初始化一个空项目:如下所示:
final Task t = new Task();
Task task = (Task)getObjectFromData(t,data);
是否有可能以某种方式跳过这条线:
final Task t = new Task();
?谢谢你的回复。
答案 0 :(得分:4)
将Class
实例传递给
private Object getObjectFromData(Class clazz, String data) {
Object o = mapper.readValue(data,clazz);
return o;
}
并按如下方式调用:
Task task = (Task) getObjectFromData(Task.class, data);
您还应该使该方法具有通用性(不要使用原始类型Class
,而是使用Class<T>
代替),这样就无需强制转换:
private <T> T getObjectFromData(Class<T> clazz, String data) {
并按如下方式调用:
Task task = getObjectFromData(Task.class, data);