反射Student类当中所有的Field

 1 package com.bjpowernode.java.reflect;
 2 
 3 import java.lang.reflect.Field;
 4 import java.lang.reflect.Modifier;
 5 
 6 /*
 7 反射Student类当中所有的Field(了解一下)
 8  */
 9 public class ReflectTest05 {
10     public static void main(String[] args) throws Exception{
11 
12         // 获取整个类
13         Class studentClass = Class.forName("com.bjpowernode.java.bean.Student");
14 
15         //com.bjpowernode.java.bean.Student
16         String className = studentClass.getName();
17         System.out.println("完整类名:" + className);
18 
19         String simpleName = studentClass.getSimpleName();
20         System.out.println("简类名:" + simpleName);
21 
22         // 获取类中所有的public修饰的Field
23         Field[] fields = studentClass.getFields();
24         System.out.println(fields.length); // 测试数组中只有1个元素
25         // 取出这个Field
26         Field f = fields[0];
27         // 取出这个Field它的名字
28         String fieldName = f.getName();
29         System.out.println(fieldName);
30 
31         // 获取所有的Field
32         Field[] fs = studentClass.getDeclaredFields();
33         System.out.println(fs.length); // 4
34 
35         System.out.println("==================================");
36         // 遍历
37         for(Field field : fs){
38             // 获取属性的修饰符列表
39             int i = field.getModifiers(); // 返回的修饰符是一个数字,每个数字是修饰符的代号!!!
40             System.out.println(i);
41             // 可以将这个“代号”数字转换成“字符串”吗?
42             String modifierString = Modifier.toString(i);
43             System.out.println(modifierString);
44             // 获取属性的类型
45             Class fieldType = field.getType();
46             //String fName = fieldType.getName();
47             String fName = fieldType.getSimpleName();
48             System.out.println(fName);
49             // 获取属性的名字
50             System.out.println(field.getName());
51         }
52     }
53 }

 

posted @ 2021-08-03 18:08  guoyuxin3  阅读(44)  评论(0)    收藏  举报