可能重複:
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