ホームページ  >  記事  >  Java  >  Javaでプロキシクラスを動的に生成する方法

Javaでプロキシクラスを動的に生成する方法

WBOY
WBOY転載
2023-04-27 18:46:071170ブラウズ

手順

1. Proxy クラスの newProxyInstance メソッドを呼び出して、プロキシ クラスのインスタンスを取得します。

2. このプロキシ クラスは、指定されたインターフェイスを実装し、メソッド呼び出しを指定された呼び出しプロセッサに分散します。

メソッド宣言

public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h) throws IllegalArgumentException

パラメータ

loader: プロキシ クラスを定義する ClassLoder

interfaces:プロキシ クラスによって実装されたインターフェイスのリスト

h: 呼び出しプロセッサ。これは、InvocationHandler インターフェイスを実装する上で定義したクラス インスタンスです。

Instance

public class Main {
    public static void main(String[] args) {
        //创建中介类实例
        DynamicProxy inter = new DynamicProxy(new Vendor());
        //加上这句将会产生一个$Proxy0.class文件,这个文件即为动态生成的代理类文件
        System.getProperties().put("sun.misc.ProxyGenerator.saveGeneratedFiles","true");
 
        //获取代理类实例sell
        Sell sell = (Sell)(Proxy.newProxyInstance(Sell.class.getClassLoader(), new Class[] {Sell.class}, inter));
 
        //通过代理类对象调用代理类方法,实际上会转到invoke方法调用
        sell.sell();
        sell.ad();
    }
}

以上がJavaでプロキシクラスを動的に生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。