我定义了自己的自定义注释
@Target(value={ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyCustomAnnotation {
Class<?> myType();
}
如果可以,我可以将属性设为可选
答案 0 :(得分:94)
您可以provide a default value获取属性:
@Target(value={ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyCustomAnnotation {
Class<?> myType() default Object.class;
}
答案 1 :(得分:3)
找到它。它不能是可选的,但默认值可以这样声明:
@Target(value={ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyCustomAnnotation {
Class<?> myType() default String.class;
}
如果没有默认值可以作为“空”值,则这是一个问题。
答案 2 :(得分:1)
对于Optional属性,您需要为该属性提供默认值,您可以使用“default”关键字提供默认值。
注意:对于只有一个属性,您可以将属性名称用作值。 如果您将属性名称用作值,则可以直接传递值,如@MyCustomAnnotation(true),而不是@MyCustomAnnotation(myType = true)。