(インターフェースではなく)抽象クラスのプロキシーを作成するためのjava.lang.reflect.Proxyの代替
ドキュメントによると: [ java.lang.reflect.]Proxyは、動的プロキシクラスとインスタンスを作成するための静的メソッドを提供します。また、これらのメソッドによって作成されるすべての動的プロキシクラスのスーパークラスでもあります。 このnewProxyMethodメソッド(動的プロキシの生成を担当)には、次の署名があります。 public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h) throws IllegalArgumentException 残念ながら、これにより、(特定のインターフェイスを実装するのではなく)特定の抽象クラスを拡張する動的プロキシを生成できなくなります。これは、「すべての動的プロキシのスーパークラス」であると考えると理にかなっています。これにより、別のクラスがスーパークラスになるのを防ぐことができます。java.lang.reflect.Proxy したがって、特定の抽象クラスから継承java.lang.reflect.Proxyする動的プロキシを生成し、抽象メソッドへのすべての呼び出しを呼び出しハンドラーにリダイレクトできる代替手段はありますか? たとえば、抽象クラスがあるとしますDog。 public abstract class Dog { public void bark() { System.out.println("Woof!"); } public abstract void fetch(); } 次のことができるクラスはありますか? Dog dog = SomeOtherProxy.newProxyInstance(classLoader, Dog.class, h); dog.fetch(); // Will be handled by the invocation handler …