我有以下类型的注释:
public @interface A {
String[] oneArr();
String[][] twoArr();
}
为什么第一个类型String[] oneArr();
有效,但第二个类型String[][] twoArr();
无效?
答案 0 :(得分:5)
来自JLS (Java Language Specification):
如果声明的方法的返回类型,则是编译时错误 注释类型不是以下之一:基本类型, String,Class,Class的任何参数化调用,枚举类型 (§8.9),注释类型或元素类型的数组类型(§10) 是以上类型之一。
以下是来自Eclipse java编译器的错误消息,它更加清晰:
注释属性A.twoArr的无效类型String [] [];只要 允许使用基本类型,字符串,类,注释,枚举 或其一维阵列