84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
如Class c1 = Student.class;可是无论是Student类还是它继承的Object类都没有class属性呀?
ringa_lee
お誘いありがとうございます。
まず、クラスは Student クラスの静的メンバーではなく、キーワードであるというエラーを修正します。 <class-name>.class は Java の特定の構文です。
次に、このクラスのバイトコード ファイルを取得するには、ファイル システムにアクセスしてファイルを見つける必要があります。これは Student.class.getResource/getResourceAsStream のようなメソッドにすぎず、非常に面倒です。 asm や cglib などのバイトコードのオープン ソース プロジェクトを検討することをお勧めします。
最後に、バイトコードは比較的複雑なテクノロジであるため、メソッドのパラメータでアノテーションを取得するなどの最後の手段として使用する必要があります (Spring Web MVC を参照)。バイトコードに関連すると思われる一部のテクノロジーは、実際にはバイパスされる可能性があります。たとえば、インターフェイスベースの AOP は、バイトコードの代わりにプロキシを使用して実装できます。
私が確認した理論の 1 つは、これはキーワードではなくリテラル値であるということです。IDE に直接「Student.class」と入力してみると、この値を変数に割り当てる必要があることが通知されます。後で新しいものを見つけたら追加します。クラスのロードについては、私のブログ「カスタマイズされたクラスローダー - .class と .jar からの読み取り」を参照してください。
お誘いありがとうございます。
まず、クラスは Student クラスの静的メンバーではなく、キーワードであるというエラーを修正します。 <class-name>.class は Java の特定の構文です。
次に、このクラスのバイトコード ファイルを取得するには、ファイル システムにアクセスしてファイルを見つける必要があります。これは Student.class.getResource/getResourceAsStream のようなメソッドにすぎず、非常に面倒です。 asm や cglib などのバイトコードのオープン ソース プロジェクトを検討することをお勧めします。
最後に、バイトコードは比較的複雑なテクノロジであるため、メソッドのパラメータでアノテーションを取得するなどの最後の手段として使用する必要があります (Spring Web MVC を参照)。バイトコードに関連すると思われる一部のテクノロジーは、実際にはバイパスされる可能性があります。たとえば、インターフェイスベースの AOP は、バイトコードの代わりにプロキシを使用して実装できます。
私が確認した理論の 1 つは、これはキーワードではなくリテラル値であるということです。IDE に直接「Student.class」と入力してみると、この値を変数に割り当てる必要があることが通知されます。後で新しいものを見つけたら追加します。クラスのロードについては、私のブログ「カスタマイズされたクラスローダー - .class と .jar からの読み取り」を参照してください。