为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕标5832272 2023-03-23 16:45:09
如果涉及嵌套的私有方法,有没有办法访问重写类的变量?特别是,我想知道执行重命名函数后 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;  }}
查看完整描述

1 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

不,因为 foo 是方法内部的变量,它甚至不是 A 上的字段,因此它只存在于 ' 的执行范围内,doSomthing不能从外部访问(就此而言,不能从 B 或 A)访问。

只有通过反射才能调用私有方法,除非你想在单元测试或类似的东西中使用它,否则不推荐这样做


查看完整回答
反对 回复 2023-03-23
  • 1 回答
  • 0 关注
  • 55 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信