java中可以通过类的class属性得到该类的字节码文件对象?
ringa_lee
ringa_lee 2017-04-18 10:50:41
0
2
602


Class c1 = Student.class;
可是无论是Student类还是它继承的Object类都没有class属性呀?

ringa_lee
ringa_lee

ringa_lee

全員に返信(2)
巴扎黑

お誘いありがとうございます。

まず、クラスは Student クラスの静的メンバーではなく、キーワードであるというエラーを修正します。 <class-name>.class は Java の特定の構文です。

次に、このクラスのバイトコード ファイルを取得するには、ファイル システムにアクセスしてファイルを見つける必要があります。これは Student.class.getResource/getResourceAsStream のようなメソッドにすぎず、非常に面倒です。 asm や cglib などのバイトコードのオープン ソース プロジェクトを検討することをお勧めします。

最後に、バイトコードは比較的複雑なテクノロジであるため、メソッドのパラメータでアノテーションを取得するなどの最後の手段として使用する必要があります (Spring Web MVC を参照)。バイトコードに関連すると思われる一部のテクノロジーは、実際にはバイパスされる可能性があります。たとえば、インターフェイスベースの AOP は、バイトコードの代わりにプロキシを使用して実装できます。

いいねを押す +0
大家讲道理

私が確認した理論の 1 つは、これはキーワードではなくリテラル値であるということです。IDE に直接「Student.class」と入力してみると、この値を変数に割り当てる必要があることが通知されます。後で新しいものを見つけたら追加します。クラスのロードについては、私のブログ「カスタマイズされたクラスローダー - .class と .jar からの読み取り」を参照してください。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート