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方法獲取類對象