泛型的本质是类型参数化,解决不确定具体对象类型的问题。泛型只是一种编写代码时的语法检查。
有个需求需要实现根据参数中指定类型,反序列化一个 JSON 字符串,然后将反序列化后的结果传到一个泛型类的方法。
示例用类:
namespace N {
class A {
}
class B<T> {
public M(T t) {
}
}
}
将反序列化的类型改成泛型后显示写法不对。
本来用的 JSONObject
反序列化的:
JSONObject.toBean(JSONObject.fromObject(strJson), ClassA.class)
判断是否是 List
类型:
if (field.getType().isAssignableFrom(List.class))
代码结构如下:
public class ValueResult<T>{
private T data;
}