【Java】+反射1+獲取屬性/成員變量 的名稱及類型


擴展鏈接:【Java】+反射2+設置屬性/成員變量 的值

封裝的方法(可直接用)

 1     /**
 2      * 功能:通過反射獲取指定類的屬性名稱及屬性類型
 3      *
 4      * @param clazz 目標類
 5      * @return 返回一個屬性類型及屬性名稱(左:類型  右:名稱)
 6      */
 7     static public List<Pair<Object, Object>> getClassFielddNameAndType(Class clazz) {
 8         Field[] fields = clazz.getDeclaredFields();
 9         List<Pair<Object, Object>> ofField = new ArrayList<>();
10         for (Field field : fields) {
11             String[] str = field.getType().getName().split("\\.");
12             System.out.println(String.format("屬性:%s %s", str[str.length - 1], field.getName()));
13             ofField.add(Pair.of(str[str.length - 1], field.getName()));
14         }
15         return ofField;
16     }
View Code

 

 

1、目標類

 

2、獲取目標群類中的屬性及屬性的類型

 

3、代碼

 1     @Test
 2     public void testInterfaceParam() {
 3         List<Pair<Object, Object>> ofFields = getClassFielddNameAndType(FileCircleRequest.class);
 4         for (int i = 0; i < ofFields.size(); i++) {
 5             System.out.println(String.format("%s %s", ofFields.get(i).getLeft(),ofFields.get(i).getRight()));
 6         }
 7     }
 8 
 9     /**
10      * 功能:通過反射獲取指定類的屬性名稱及屬性類型
11      *
12      * @param clazz
13      */
14     static public List<Pair<Object,Object>> getClassFielddNameAndType(Class clazz) {
15         Field[] fields = clazz.getDeclaredFields();
16         List<Pair<Object,Object>> ofField = new ArrayList<>();
17         for (Field field : fields) {
18             String[] str = field.getType().getName().split("\\.");
19             System.out.println(String.format("屬性:%s %s", str[str.length - 1], field.getName()));
20             ofField.add(Pair.of(str[str.length-1],field.getName()));
21         }
22 
23         return ofField;
24     }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM