public class Person {
private String name; //私有属性,外部类无法直接访问
private int age; //私有
public void desc(){
System.out.println("名字:"+name+",年龄:"+age);
}
public void setName(String name1){
name=name1;
}
public String getName(){
return name;
}
public void setAge(int age1){
age=age1;
}
public int getAge(){
return age;
}
}
public class DemoPerson1 {
public static void main(String[] args) throws Exception {
Person person = new Person();
//通过反射方法获取私有属性并赋值
Class<Person> clazz = Person.class;
Field name=clazz.getDeclaredField("name");
name.setAccessible(true);//设置私有属性可以通过反射进行访问
name.set(person,"job");//对person类实体的name属性值设为job
person.desc();
}
}
比如,和第三方机构进行对接时,对方只给了类 私有属性的变量以及对应的值,可以通过反射得到类对象,从而为变量设置值,构造出类的实例对象。