我有一个不典型的静态常量值,我想通过以下方式声明它:
protected static final int[][] a = new int [][] { {34,16}, {50,16}, {66,16}, {82,16}, {98,16}, {114,16}};
不幸的是,它被拒绝了。除非使用常量表达式初始化,否则字段 a 不能在非静态内部类型中声明为静态。
只是为了完全确定我们对情况有相同的了解,它是内部类的领域。
我也尝试将其声明为
protected static final int[][] a = { {34,16}, {50,16}, {66,16}, {82,16}, {98,16}, {114,16}};
它也不起作用。:(
即使我尝试使用静态初始值设定项,情况也是如此:
protected static final int[][] a;
static { a = new int [][] { {34,16}, {50,16}, {66,16}, {82,16}, {98,16}, {114,16}}};
它被拒绝了,当我删除新的 int[][] 时也是如此。
为什么它不起作用?当然,我可以跳过静态并将其视为非静态字段,但如果它是一个常量值,为什么不将其设为静态呢?