我有一个这样的注释:
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.TYPE})
public @interface MyAnnotation {
String name();
Class<InstanceConverter> converter();
我正在尝试做的是需要名称和转换器可选。看来默认情况下需要注释的所有属性。如何使转换器可选?
我已经阅读了两篇关于注释的文章,似乎没有提到可选属性。
感谢。
答案 0 :(得分:9)
您应该在注释@interface定义的字段声明语句的右侧添加default
子句:
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.TYPE})
public @interface MyAnnotation {
String name(); // mandatory
Class<InstanceConverter> converter() default InstanceConverter.class; // optional
}