Java反射-访问保护字段

Java反射-访问保护字段,第1张

Java反射-访问保护字段

可能会遇到两个问题-字段可能无法正常访问(私有),并且不在您正在查看的类中,而是位于层次结构中的某个位置。

这样的事情甚至可以解决这些问题:

public class SomeExample {  public static void main(String[] args) throws Exception{    Object myObj = new SomeDerivedClass(1234);    Class myClass = myObj.getClass();    Field myField = getField(myClass, "value");    myField.setAccessible(true); //required if field is not normally accessible    System.out.println("value: " + myField.get(myObj));  }  private static Field getField(Class clazz, String fieldName)        throws NoSuchFieldException {    try {      return clazz.getDeclaredField(fieldName);    } catch (NoSuchFieldException e) {      Class superClass = clazz.getSuperclass();      if (superClass == null) {        throw e;      } else {        return getField(superClass, fieldName);      }    }  }}class SomebaseClass {  private Integer value;  SomebaseClass(Integer value) {    this.value = value;  }}class SomeDerivedClass extends SomebaseClass {  SomeDerivedClass(Integer value) {    super(value);  }}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5489661.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-12
下一篇2022-12-12

发表评论

登录后才能评论

评论列表(0条)

    保存