Java 具有可选属性的注释

Java 具有可选属性的注释,java,annotations,Java,Annotations,我有这样一个注释: @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.FIELD, ElementType.METHOD, ElementType.TYPE}) public @interface MyAnnotation { String name(); Class<InstanceConverter> converter(); @Retention(RetentionPolicy.RUNTIME) @目

我有这样一个注释:

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

  Class<InstanceConverter> converter();
@Retention(RetentionPolicy.RUNTIME)
@目标({ElementType.FIELD,ElementType.METHOD,ElementType.TYPE})
public@interface-MyAnnotation{
字符串名();
类转换器();
我试图做的是将名称设为必需,将转换器设为可选。默认情况下,注释的所有属性都是必需的。如何将转换器设为可选

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


谢谢。

您应该在annotation@interface definition中的字段声明语句右侧添加一个
default
子句:

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

  String  name(); // mandatory

  Class<InstanceConverter> converter() default InstanceConverter.class; // optional
}
@Retention(RetentionPolicy.RUNTIME)
@目标({ElementType.FIELD,ElementType.METHOD,ElementType.TYPE})
public@interface-MyAnnotation{
字符串名称();//必填项
Class converter()默认InstanceConverter.Class;//可选
}