เราสามารถใช้การสะท้อนกลับเพื่อรับสมาชิกแบบคงที่ของคลาสโดยไม่ต้องเรียกใช้เมธอดนั้นบนอินสแตนซ์ของวัตถุได้หรือไม่?
กล่าวอีกนัยหนึ่ง:
public class MuchoStatic {
private static staticMember;
getStaticMember(){
return this.staticMember;
}
} //end class
แล้วมีรหัสเพิ่มเติม:
Method m = null;
try{
m = MuchoStatic.class.getMethod("getStaticMember",null);
} catch (Exception e) {
}
Object o = null;
try{
o = m.invoke(MuchoStatic.class,null);
} catch (Exception e) {
}
ฉันได้รับข้อยกเว้นการโต้แย้งที่ผิดกฎหมาย ฉันคิดว่าเป็นเพราะฉันส่งวัตถุ Class ไปยังวิธีการเรียกใช้ ปรากฎว่า Object o ได้รับการติดตั้งจริงแล้ว แต่ข้อยกเว้นยังคงถูกส่งออกไป
เราไม่ควรทำเช่นนี้หรือ?