JDKプロキシクラスは、ファクトリメソッドnewProxyInstance()のインターフェイスのみを受け入れます。JDKのダイナミックプロキシは、インターフェイスでのみ動作します。
回避策がありますか、それとも代替の実装ですか? プロキシで使用するためにメソッドをインタフェースに抽出する必要がある場合、ユースケースは制限されています。実行時に注釈ベースのアクションを適用するためにそれらをラップしたいと思います。
public static <T> T getProxy(T obj) {
InvocationHandler ih = new InjectProxy(obj);
ClassLoader classLoader = InjectProxy.class.getClassLoader();
return (T) Proxy.newProxyInstance(classLoader, obj.getClass().getInterfaces(), ih);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
}
基本的に、ASMのようなバイトコード・ライブラリーを使用して、クラス・ベースのプロキシーを自分で作成することができます。 –
@Krik、いくつかのユニットテストモックライブラリがこれを行います。必要なメソッドをオーバーライドする派生クラスを作成する必要があります。 (自動または手動で) –
あなたはこの種のことをするように設計されているAspect-Jを考えましたか? –