Java如何发送类参数中的类型

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

?感谢您的回复。

最佳答案

传递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/

相关文章:

java - Protobuf - 构建器不存在?

java - 了解 hibernate 中的 session.get 与 session.load 方法

java - Lucene 在多个字段上搜索但在任何字段上匹配

Java HOSTS 文件绕过(域到 ip 绑定(bind))

java - 执行 maven 3 - 何时使用 maven enforcer 插件?什么时候使用 pom 先决条件元素?

java - 为什么 eclipselink 每次重新启动时都会消耗整个 AllocationSize?

java - 有没有办法在java项目中阻止EasyMock的良好控制?

java - 与 JTable 中的单元格渲染器交互

java - 如何向创建的 GSON 添加属性到 JSON?

java - 单击不同按钮时如何在 Fragment 的 Textview 中设置不同的字符串?