带有可选属性的注释

Tho*_*hom 4 java annotations

我有一个这样的注释:

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.TYPE})
public @interface MyAnnotation {
  String  name();

  Class<InstanceConverter> converter();
Run Code Online (Sandbox Code Playgroud)

我要做的是使名称和转换器可选.看来默认情况下需要注释的所有属性.如何使转换器可选?

我已经阅读了两篇关于注释的文章,似乎没有提到可选属性.

谢谢.

Ale*_*iez 9

您应该default在注释@interface定义的字段声明语句的右侧添加一个子句:

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.TYPE})
public @interface MyAnnotation {

  String  name(); // mandatory

  Class<InstanceConverter> converter() default InstanceConverter.class; // optional
}
Run Code Online (Sandbox Code Playgroud)