如果涉及嵌套的私有方法,有没有办法访问重写类的变量?特别是,我想知道执行重命名函数后 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)访问。
只有通过反射才能调用私有方法,除非你想在单元测试或类似的东西中使用它,否则不推荐这样做
添加回答
举报
0/150
提交
取消