首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java注释不起作用

Java注释不起作用
EN

Stack Overflow用户
提问于 2009-04-08 05:24:19
回答 2查看 12.2K关注 0票数 22

我正在尝试使用Java注解,但似乎无法让我的代码识别其中存在的注解。我做错了什么?

代码语言:javascript
复制
  import java.lang.reflect.*;
  import java.lang.annotation.*;

  @interface MyAnnotation{}


  public class FooTest
  { 
    @MyAnnotation
    public void doFoo()
    {       
    }

    public static void main(String[] args) throws Exception
    {               
        Method method = FooTest.class.getMethod( "doFoo" );

        Annotation[] annotations = method.getAnnotations();
        for( Annotation annotation : method.getAnnotations() )
            System.out.println( "Annotation: " + annotation  );

    }
  }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-04-08 05:26:34

您需要使用annotation接口上的@Retention注释将注释指定为Runtime注释。

代码语言:javascript
复制
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation{}
票数 42
EN

Stack Overflow用户

发布于 2012-03-13 05:02:38

使用@Retention(RetentionPolicy.RUNTIME)检查以下代码。它正在为我工作:

代码语言:javascript
复制
import java.lang.reflect.*;
import java.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation1{}

@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation2{}

public class FooTest {
    @MyAnnotation1
    public void doFoo() {
    }

    @MyAnnotation2
    public void doFooo() {
    }

    public static void main(String[] args) throws Exception {
        Method method = FooTest.class.getMethod( "doFoo" );
        for( Annotation annotation : method.getAnnotations() )
            System.out.println( "Annotation: " + annotation  );

        method = FooTest.class.getMethod( "doFooo" );
        for( Annotation annotation : method.getAnnotations() )
            System.out.println( "Annotation: " + annotation  );
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/728605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档