使用涉及的嵌套私有方法访问覆盖函数的公共变量

如果涉及嵌套的私有方法,有没有办法访问重写类的变量?


特别是,我想知道执行重命名函数后 B 类中 String foo 的值(请参见下面的示例)。我不打算更改 A 类代码的任何功能,这只是为了以某种方式获取值。


我可以自由编辑 B 类,但如果真的没有其他方法可以实现,则更改 A 类只是我的一个选择。


public abstract class A {

  protected void methodA() {

     String foo = "bla";

     foo = renameFunction(foo);

  }


  private String renameFunction(String incString)

  {

     return incString + "blub";

  }

}


public class B extends A {

  private String bar;


  @Override

   private void methodA() {

     String foo = "bla";

     foo = renameFunction(foo); //will not work as it's private

     this.bar = foo;

  }

}


慕标5832272
浏览 81回答 1
1回答

神不在的星期二

不,因为 foo 是方法内部的变量,它甚至不是 A 上的字段,因此它只存在于 ' 的执行范围内,doSomthing不能从外部访问(就此而言,不能从 B 或 A)访问。只有通过反射才能调用私有方法,除非你想在单元测试或类似的东西中使用它,否则不推荐这样做
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java