我知道我可以使用反射来调用私有方法,并获取或设置一个私有变量的值,但我要重写的方法.
public class SuperClass {
public void printInt() {
System.out.println("I am " + getClass() + ". The int is " + getInt());
}
private int getInt() {
return 1;
}
}
public class SubClass extends SuperClass {
public static void main(String[] args) {
(new SubClass()).printInt();
}
public int getInt() {
return 2;
}
}
Run Code Online (Sandbox Code Playgroud)
我想要 打印输出的main方法,但它打印出来.我听说这可以通过反思完成,但我无法弄清楚如何.如果没有反思,有没有人知道另一种方式呢?(除了保护,复制和粘贴方法之外.)如果实际覆盖私有方法是不可能的,有没有办法在它上面放置某种类型的触发器,它将调用我的子类中的方法之前或私有方法执行后?SubClass21SuperClass.getInt()printInt()SubClass