newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h);
メソッドの呼び出しを指定された呼び出しハンドラにディスパッチする指定されたインターフェイスのプロキシクラスのインスタンスを返します。java.lang.reflect.Proxy.newProxyInstance()が返すオブジェクトを他のクラスに拡張する方法
このメソッドから返されたインスタンスをカプセル化する必要があります(たとえば、他のクラスにカプセル化する)ので、ほかのクラスも拡張する必要があります。したがって、最終クラスは1つのクラスを拡張し、指定されたインタフェースを実装します。拡張する
クラスがある:
public class IProxy {
ObjectRef oref;
public IProxy(ObjectRef oref) {
this.oref = oref;
}
}
ので、プロセスがなければならない:
MyInterface() mi=(MyInterface) newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h);
// some magic trick
そして最後に、私はIProxyを拡張およびMIすべてのインタフェースを実装するクラスのインスタンスを持っていると思い実装しました。
これはできません。なぜそのクラスを拡張すべきかについてもっと詳しく説明できますか?あなたが望むものを達成するための他の方法があるかもしれません。 – gkamal