如果涉及嵌套的私有方法,有没有办法访问覆盖类的变量?
特别是,我想知道重命名函数执行结束后 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;
}
}
不。由于 foo 是方法内部的变量,它甚至不是 A 上的字段,因此它仅存在于doSomthing
的执行范围内,不能从外部访问(不是从 B 或 A 访问)。
只有通过反射才能调用私有方法,除非您希望在单元测试或类似的东西中使用它,否则不推荐这样做
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句