別の 3pp クラスによって呼び出される 3pp クラスのメソッドを置き換えようとしています。ホール クラスを書き直し、クラス パスの順序を変更するかどうかはわかっています。または、拡張クラスローダーが元のクラスではなく私のクラスをロードするよりも、Javaホームのlib/extに配置します。
しかし、元のクラスを置換クラスから拡張するにはどうすればよいですか:
package com.example
public class Foo extends com.example.Foo {
@Override
public void m1() {
}
}
この例が機能しないことはわかっていますが、目標を説明しようとしています。このクラスは元のクラスを同じ正規名で拡張し、1 つのメソッドがオーバーライドされ、他のすべてのメソッドが継承されます。したがって、3pp 製品のバージョンを上げても、カバーしたいメソッドのみをオーバーライドするため、クラスを変更する必要はありません。
誰か良い解決策や良いアイデアを持っていますか?