使用反射設(shè)置boolean屬性的步驟如下:
下面是一個(gè)示例代碼:
public class MyClass {
private boolean flag;
public boolean isFlag() {
return flag;
}
public void setFlag(boolean flag) {
this.flag = flag;
}
}
public class Main {
public static void main(String[] args) throws Exception {
MyClass obj = new MyClass();
// 獲取Class對象
Class<?> clazz = obj.getClass();
// 獲取setter方法
Method setter = clazz.getMethod("setFlag", boolean.class);
// 調(diào)用setter方法設(shè)置屬性值
setter.invoke(obj, true);
// 驗(yàn)證屬性值是否設(shè)置成功
System.out.println(obj.isFlag()); // 輸出:true
}
}
注意:在使用反射設(shè)置屬性時(shí),需要確保屬性的訪問權(quán)限足夠,否則會拋出IllegalAccessException異常??梢允褂胹etAccessible(true)方法來設(shè)置屬性的可訪問性。例如,對于私有屬性 flag,可以在獲取setter方法后調(diào)用setter.setAccessible(true)來設(shè)置可訪問性。