6
私は、InvocationHandler
実装によって裏打ちされたインターフェイスタイプのプロキシインスタンスを作成するために働く、次のコードを持って、私は具象クラス型を使用する場合しかし、それは動作しません、これはよく知られており、Proxy.newProxyInstanceに記載されて:クラスタイプのJavaプロキシインスタンスを作成していますか?
// NOTE: does not work because SomeConcreteClass is not an interface type
final ClassLoader myClassLoader = SomeConcreteClass.getClassLoader();
SomeConcreteClass myProxy = (SomeConcreteClass) Proxy.newProxyInstance(myClassLoader, new Class[] {
SomeConcreteClass.class }, new InvocationHandler() { /* TODO */ });
しかし、私が正しく思い出すと、具体的なクラスタイプを模擬することが可能ないくつかのモックフレームワークでは、このユースケースの動作を見てきました。 EasyMock。ソースコードをチェックする前に、インターフェイスだけでなく、具体的なクラスタイプもプロキシにする必要があることを示すことができますか?
その後、OPの質問は次のようになります。CGLIBは、それが動的にASMバイトコード操作ライブラリを使用してプロキシサブクラス用のバイトコードを生成するPure Java :) –
@GiovanniAzuaの面でそれをしませんか。 –
ありがとうございます。 –