Loading...

[java]あれーーー、匿名クラスのアノテーションは実行時につかないの?

Javaアノテーション実験です。

匿名クラスにつけたアノテーションが実行時につかないっぽい。
使い方まちがってるかなぁ

追記
匿名さんからのコメントです。@Inheritedをつけるとオッケーでした!!


以下テストコード。
package build;

import java.awt.Container;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

public class TestAnnotation {

@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation {

}

@MyAnnotation
static class MyContainer extends Container {

}

public static void main(String[] args) {

Container container = new MyContainer();
Container container2 = new MyContainer() {
};

System.out.println("*** not anonymous inner class:"
+ container.getClass().isAnnotationPresent(MyAnnotation.class));
System.out.println("*** anonymous inner class:"
+ container2.getClass().isAnnotationPresent(MyAnnotation.class));

}

}


実行結果
*** not anonymous inner class:true
*** anonymous inner class:false
リアクション: 
アノテーション 217514004306426268

コメントを投稿

3 件のコメント

匿名 さんのコメント...

@Inherited を MyAnnotation につけてやれば OK ですね。

ugo さんのコメント...

ひえー
ありがとうございます。
確認しました。
@InheritedをつけてOKでした。
ありがとうございます。勉強になりましたです。

匿名 さんのコメント...

Great article and very interesting blog :)

------------------------------------------
Free Poker Money - Free $50 褒奨金

ホーム item

このブログを検索

Random Posts

Popular Posts

Labels

ADS