Java如何发送类参数

时间:2016-03-11 13:20:01

标签: java

我想创建一个接受任何类类型并将其发送到另一个方法的方法。然后返回对象:示例:

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();

?谢谢你的回复。

1 个答案:

答案 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);