Java泛型主要包括泛型类、泛型方法和泛型接口。
使用astjson转换json至特定对象
创建一个学生对象
class Student {
public String name;
public int age;
public int score;
}
使用泛型将jsonobject转换为T类型对象
public <T> T getObject(JSONObject object, Class<T> type) {
T tt = JSONObject.toJavaObject(object, type);
return tt;
}
下图可见toJavaObeject需要一个json类型的参数,和一个转换类型的Class对象,将Student的class对象作为参数传递。
public static <T> T toJavaObject(JSON json, Class<T> clazz) {
return TypeUtils.cast(json, clazz, ParserConfig.getGlobalInstance());
}
public static void main(String[] args) {
GenericTest test = new GenericTest();
JSONObject object = new JSONObject();
object.put("name", "test1");
object.put("age", 1);
object.put("score", 10);
Student t = test.getObject(object, Student.class);
}
Student中的成员变量得是public,否则解析出来的值默认值,无法正确转换。
什么是Class对象?
Java中有两种对象,Class对象和实例对象。实例对象是指通过new初始化构造的;Class对象是JVM生成用来保存对象的类信息的。
Class对象的获取方式有:
1、Class.forName(),参数为类名字符串=包名+类名
2、getClass(),通过类的实例调用getClass方法获取类对象