我想创建一个可以接受任何类类型并将其发送到另一个方法的方法。然后返回对象: 示例:
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();
?感谢您的回复。
最佳答案
传递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);
关于Java如何发送类参数中的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35941337/