2013-03-24 96 views
0

我正在看一個簡單的Enum示例來嘗試和刷新我的技能,我注意到至少通過一個紅旗爲我的東西,因爲我不明白爲什麼它被允許。訪問私有成員的枚舉變量?

這裏是枚舉的副本我一直在尋找:

public enum GameDuration { 
    Short("30"), Medium("45"), Long("60"); 

    private GameDuration(String minutes) { 
     this.minutes = minutes; 
    } 

    private String minutes; 

    public String getMinutes() { 
     return this.minutes; 
    } 

    public static GameDuration fromMinutes(String minutes) { 
     if (minutes != null) { 
      for (GameDuration g : GameDuration.values()) { 
       if (minutes.equalsIgnoreCase(g.minutes)) { 
        return g; 
       } 
      } 
     } 
     return null; 
    } 
} 

我不明白的部分是在fromMinutes方法和粘貼下面:

if (minutes.equalsIgnoreCase(g.minutes)) { 

分鐘enum中的字段被標記爲私有的,那麼如何直接從變量g中訪問?

感謝

回答

1

方法fromMinutes(...)位於GameDuration類的內部,因此私有變量和類的方法來訪問它。

+1

哦,我沒有注意到......對不起,這很晚了。 :)即使它是靜態的? – 2013-03-24 05:05:11

+0

@JanTacci:即使它是靜態的(因爲你的編譯器已經告訴你了)。 – 2013-03-24 05:05:40

+0

K明白了,我應該早點注意到:) – 2013-03-24 05:07:36