该default ""
部分在以下代码中的含义是什么?
public @interface MyAnnotation { String[] names() default ""; }
它等于
String[] names() default new String[0];
?
public @interface MyAnnotation { String[] names() default ""; }
意味着默认情况下names
将是一个空String
(""
)的数组.
这与使用array-initializer时相同:
public @interface MyAnnotation { String[] names() default { "" }; }
此外,String[] names() default new String[0];
不编译,因为annotation属性的(默认)值必须是常量表达式.
作为家庭作业,您可以MyAnnotation
使用反射来注释某些内容并探索其属性.