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

WBOY
リリース: 2023-04-27 18:46:07
転載
1222 人が閲覧しました

手順

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!