java自定义注释:使属性可选

2022-08-31 14:33:43

我定义了自己的自定义注释

@Target(value={ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyCustomAnnotation  {
    Class<?> myType();
}

如果有的话,我如何将属性设置为可选


答案 1

您可以为属性提供默认值

@Target(value={ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyCustomAnnotation  {
    Class<?> myType() default Object.class;
}

答案 2

找到了。它不能是可选的,但可以像这样声明默认值:

@Target(value={ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyCustomAnnotation  {
    Class<?> myType() default String.class;
}

如果没有默认值可以作为“空”值,那么这是一个问题。


推荐