リフレクションを使用してプライベート メソッドを呼び出し、プライベート変数の値を取得または設定できることはわかっていますが、メソッドをオーバーライドしたいと考えています。
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;
}
}
main
メソッドSubClass
を印刷したいのです2
が、印刷され1
ます。これはリフレクションによって行うことができると聞いたことがありますが、方法がわかりません。リフレクションでない場合、誰かがそれを行う別の方法を知っていますか? (保護するか、メソッドをSuperClass.getInt()
コピーしてに貼り付ける以外。)実際にプライベートメソッドをオーバーライドできない場合、サブクラスのメソッドを呼び出す前または前に何らかのトリガーを配置する方法はありますかプライベートメソッドが実行された後?printInt()
SubClass