日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java invoke 泛型_利用Java反射机制和泛型,全自动解析json

發布時間:2025/3/11 java 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java invoke 泛型_利用Java反射机制和泛型,全自动解析json 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

有啦這個簡直,太爽啦,

利用Java 反射機制,利用Class 就可以得到 類的 變量? Field[] fields=cls.getDeclaredFields();

還可以通過類中 的方法名字 去執行這個方法

m1 = cls.getDeclaredMethod(getMothodName(fields[j].getName()), String.class);

m1.invoke(result,json.getString(fields[j].getName()) );

利用泛型 去獲取這個Class 的實例 T result=?cls.newInstance();上面的便可以執行

方法名 如何獲取得到??? 假設說一個變量名稱為name 那么 設置這個的參數就是 setName();

很明顯 變量名前加上 set 然后 變量名第一個字符大寫 加在一起就是setName

整個方法如下:

public static List getObject(JSONArray arr,Class cls){

Field[] fields=cls.getDeclaredFields();

Method m1;

List list = new ArrayList();

try {

T result = null;

try {

result = cls.newInstance();

} catch (InstantiationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

for(int i=0;i

{

JSONObject json = arr.getJSONObject(i);

for (int j = 0; j < fields.length; j++) {

m1 = cls.getDeclaredMethod(getMothodName(fields[j].getName()), String.class);

m1.invoke(result,json.getString(fields[j].getName()) );

}

list.add(result);

}

} catch (JSONException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (NoSuchMethodException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IllegalAccessException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IllegalArgumentException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (InvocationTargetException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return list;

}

private static String getMothodName(String name){

char[] b =name.toCharArray();

if (b[0] >= 97 && b[0] <= 122) {

b[0] = (char) (b[0] - 32);

}

String mothodName="set"+new String(b);

return mothodName;

}

版權聲明:本文為博主原創文章,未經博主允許不得轉載。

總結

以上是生活随笔為你收集整理的java invoke 泛型_利用Java反射机制和泛型,全自动解析json的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。