可能重复:
Cannot declare Public static final String s = new String(“123”) inside an inner class为什么Java允许嵌套类中的“public static final”用于简单类型而不是数组?
在下面的例子,为什么CONST_ONE,CONST_TWO允许的,但CONST_THREE与错误标记 “内部类不能有静态声明”?
package com.myco.mypack;
public final class Constants {
public final class GroupOne {
public static final String CONST_ONE = "stuff";
public static final int CONST_TWO = 2;
public static final int[] CONST_THREE = new int[]{3};
}
public static final int[] CONST_FOUR = new int[]{4};
}
我能得到我需要使用public interface GroupOne
而不是行为,但我还是想理解为什么常数treatly不同。我看到的唯一区别是,第三个是一个数组,因此它的成员是可修改的,但似乎会触发不同的错误,如果有的话。
它已被回答。基本上只允许编译时常量字段。参考:http://stackoverflow.com/questions/4725505/cannot-declare-public-static-final-string-s-new-string123-inside-an-inner – Andrejs 2012-03-22 15:28:32
这看起来像一个重复的问题,谢谢。 – 2012-03-22 15:35:12