java - 如何使用变量中提供的类型使用 GSON.fromJson ?

标签 java generics gson

我想按以下方式使用 GSON.fromJSON:

Class<?> type = Abc.class;
Class<?> parametersObject = GSON.fromJson(parameters, type);

但是我在第二行遇到编译错误。如何推断以下行的返回类型?我知道在上面的例子中它会是 Abc 类型。但我想根据类型变量中指定的内容使其动态化。我怎样才能做到这一点?

最佳答案

使用下面的代码尝试一下。有一个关于?之间区别的问题和T在类和方法签名中,link .

public class Tests<T> {

    @Test
    public void test01() {
        Tests<String> stringTest= new Tests<>();
        System.out.println(stringTest.parseObject("testtestt", String.class));
    }

    public T parseObject(String parameters, Class<T> clazz) {
        Gson gson = new Gson();
        T obj = (T) gson.fromJson(parameters, clazz);
        return obj;
    }
}

`` UPD:
声明<T> T方法的返回类型。

@Test
public void test02() {
    String stringstring = parseObject02("stringstring", String.class);
    System.out.println(stringstring);
    List list = parseObject02("[1,2,3]", List.class);
    System.out.println(list);
//        output in console
//        stringstring
//        [1.0, 2.0, 3.0]
}

public <T> T parseObject02(String parameters, Class<T> clazz) {
    Gson gson = new Gson();
    T obj = gson.fromJson(parameters, clazz);
    return obj;
}

关于java - 如何使用变量中提供的类型使用 GSON.fromJson ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58070935/

相关文章:

java - 使用 Wildlfy 11 嵌入的 Apache Artemis 接收 MQTT 消息

android - 使用 new Gson().toJson(object) 无限循环

java - 如何在 Android 中解析换行符分隔的 Json 响应?

java - 实现 oneToMany 关系的最佳实践是什么?

Java 使用 SAX 处理 XML

scala - scala 中泛型抽象类型的模式匹配

c - OpenMP 通用 qsort 加速效果不佳

java - 尝试访问 POJO 属性时为空指针

java - 我想将数据从 Activity 传输到 fragment ,然后在 fragment 中显示数据。我的代码不起作用

java - 如何通过 Java 中的通用通配符捕获创建数组的克隆?