我如何像@name(“Luke”)一样在括号内没有属性的情况下进行Java注释?

如何进行自定义Java注释,括号内没有属性名称?

我不想要这个:.我只想像Servlets一样,即:@annotation_name(att=valor)

@WebServlet("/main")

答案 1

使用名为 的属性定义注释,然后可以省略属性名称value

@interface CustomAnnotation
{
    String value();
}

这可以这样使用:

@CustomAnnotation("/main")
// ...

答案 2

指定名为 value 的属性:

public @interface MyAnnotation {

    String value();

}

如果它们具有默认值,则不必是唯一的属性:

public @interface MyAnnotation {

    String value();
    int myInteger() default 0;

}

但是,如果要显式地为属性分配值以外的值,则必须显式赋值。也就是说:

@MyAnnotation("foo")
@MyAnnotation(value = "foo", myInteger = 1)

工程

@MyAnnotatino("foo", myInteger = 1)