程序填空题:使用反射机制中的属性对象设置对象的属性值
利用反射机制中的属性对象,可以间接地为对象的属性赋值。
java
import java.lang.reflect.*;//必须引入反射类库,才能使用属性对象
class Teacher {
private String name;
private int age;
Teacher(String name,int age) {
this.name=name;
this.age=age;
}
public String toString() {
return "[姓名:"+name+",年龄:"+age+"]";
}
}
public class Main {
public static void main(String[] args) throws Exception {
Teacher th= new Teacher("张三",25);
Class cls=th.getClass(); //通过对象获取类信息
; //获取类的全部属性(包括私有属性)
; //取消权限检查
fldAge.setInt(th, 31);//设置属性值
System.out.println(th);
}
}
答案:
第1空:Field fldAge=cls.getDeclaredField("age")
第2空:fldAge.setAccessible(true)
java
import java.lang.reflect.*;//必须引入反射类库,才能使用属性对象
class Teacher {
private String name;
private int age;
Teacher(String name,int age) {
this.name=name;
this.age=age;
}
public String toString() {
return "[姓名:"+name+",年龄:"+age+"]";
}
}
public class Main {
public static void main(String[] args) throws Exception {
Teacher th= new Teacher("张三",25);
Class cls=th.getClass(); //通过对象获取类信息
; //获取类的全部属性(包括私有属性)
; //取消权限检查
fldAge.setInt(th, 31);//设置属性值
System.out.println(th);
}
}
答案:
第1空:Field fldAge=cls.getDeclaredField("age")
第2空:fldAge.setAccessible(true)