我想按以下方式使用 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/