注释String [] oneArr(); vs String [] [] twoArr();宣言

时间:2013-10-02 10:47:17

标签: java arrays annotations

我有以下类型的注释:

 public @interface A {
   String[] oneArr();
   String[][] twoArr();
 }

为什么第一个类型String[] oneArr();有效,但第二个类型String[][] twoArr();无效?

1 个答案:

答案 0 :(得分:5)

来自JLS (Java Language Specification)

  

如果声明的方法的返回类型,则是编译时错误   注释类型不是以下之一:基本类型,   String,Class,Class的任何参数化调用,枚举类型   (§8.9),注释类型或元素类型的数组类型(§10)   是以上类型之一。

以下是来自Eclipse java编译器的错误消息,它更加清晰:

  

注释属性A.twoArr的无效类型String [] [];只要   允许使用基本类型,字符串,类,注释,枚举   或其一维阵列