以下方法完美无瑕
public <T> void fromJsonArray(String jsonString,Type tToken) {
Gson g = new Gson();
T list = g.fromJson(jsonString,tToken);
System.out.println(list);
}
Run Code Online (Sandbox Code Playgroud)
但是我还没有说明这种方法中的<T>是什么.如何将编译器返回的值分配给i未指定fromJson的变量list?
我刚刚测试了答案的有效性,说明<T>是从方法的返回类型推断出来的.它似乎没有成功.请查看以下代码.它甚至没有编译
import java.util.*;
class Sample {
public List<String> getT(String s) {
List<String> list = new ArrayList<String>();
list.add(s);
return list;
}
public <T> void test(){
T list = getT("test");
System.out.println(l);
}
public static void main(String[] a) {
new Sample().test();
}
}
Run Code Online (Sandbox Code Playgroud)
再次修改了源并对其进行了测试,结果导致了编译时错误
public <T> List<T> getT(T s) {
List<T> list = new ArrayList<T>();
list.add(s);
return …Run Code Online (Sandbox Code Playgroud)