1 public class Demo12{ 2 3 /* 4 对任意一个Object实例,只要我们获取了它的Class,就可以获取它的一切信息 5 Class类提供了以下几个方法来获取字段 6 7 Field getField(name):根据字段名获取某个public的field(包括父类) 8 Field getDeclaredField(name):根据字段名获取当前类的某个field(不包括父类) 9 Field getFields():获取全部public的field(包括父类) 10 Field getDeclaredField():获取当前类的全部field(不包括父类) 11 */ 12 13 //reflection反射 14 public static void main(String[] args) throws Exception{ //记住要抛出异常 15 Class stuClass = Student.class; 16 //获取public字段"score" 17 System.out.println(stuClass.getField("score"));//public int Student.score 18 //获取继承的public字段"name" 19 System.out.println(stuClass.getField("name"));//public java.lang.String Person.name 20 //获取private字段"grade" 21 System.out.println(stuClass.getDeclaredField("grade")); 22 } 23 } 24 25 class Student extends Person{ 26 public int score; 27 //班级字段私有 28 private int grade; 29 } 30 31 class Person{ 32 public String name; 33 }
一个Field对象包含了一个字段的所有信息
getName():返回字段名称,例如"name"
getType():返回字段类型,也是一个Class实例,例如,String.class
getModifiers():返回字段的修饰符,它是一个int,不同的bit表示不同的含义
原文:https://www.cnblogs.com/zui-ai-java/p/14226064.html