可能重复:
无法在内部类中声明 Public static final String s = new String(“123”)
在以下示例中,为什么允许 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
来获得我需要的行为,但我仍然想了解为什么常量的处理方式不同。我看到的唯一区别是第三个是一个数组,因此它的成员是可修改的,但如果有的话,这似乎会触发一个不同的错误。