import java.lang.reflect.Field;
class Father{
public String fname;
}
public class Test extends Father{
private String name ;
public Integer age ;
protected String sex;
public static void main(String[] args) throws Exception {
Field privateName = Test.class.getDeclaredField("name");
//Field publicName = Test.class.getField("name");//报错 NoSuchFieldException: name
System.out.println("privateName="+privateName);
//System.out.println("publicName="+publicName);
Field privateAge = Test.class.getDeclaredField("age");
Field publicAge = Test.class.getField("age");
System.out.println("privateAge="+privateAge);
System.out.println("publicAge="+ publicAge.getName());
Field privateSex = Test.class.getDeclaredField("sex");
// Field publicSex = Test.class.getField("sex");//报错
System.out.println("privateSex="+privateSex);
//System.out.println("publicSex="+publicSex);
// Field privateFname = Test.class.getDeclaredField("fname"); //报错
Field publicFname = Test.class.getField("fname");
/**
* 结论:
* getDeclaredField() 可以获取类本身的所有的属性成员
* getField() 只能获取本类及其父类的public成员
*/
}
}
Java反射 getDeclaredField()和getField()方法的区别
最新推荐文章于 2025-02-18 10:01:49 发布