我在“自定义注释”下面写过。

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {

    String value();

}


并使用以下注释。

@MyAnnotation("someValue")
public void someMethod(){


}


上面的代码工作正常,没有任何问题。
但是在注释类中,必须重新命名value()方法名称。我可以做以下事情吗?

@Target(ElementType.METHOD)
    @Retention(RetentionPolicy.RUNTIME)
    public @interface MyAnnotation {

        String name();

    }


我试着做,但是蚀给了编译错误。

- The attribute value is undefined for the annotation type
     MyAnnotation
    - The annotation @MyAnnotation must define the attribute
     name


任何原因?

最佳答案

像这样使用它:

@MyAnnotation(name="someValue")
public void someMethod(){


}


因为默认情况下注解具有值方法,所以如果您这样指定

@MyAnnotation("someValue")
    public void someMethod(){


    }


默认情况下将其作为value="someValue"

关于java - 创建自定义注释并在Java中使用它?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21399318/

10-13 08:08