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)) {

列挙型の分のフィールドはプライベートとしてマークされているため、変数 g から直接アクセスするにはどうすればよいでしょうか?

ありがとう

4

1 に答える 1

1

このメソッドfromMinutes(...)は GameDuration クラス内にあるため、クラスのプライベート変数とメソッドにアクセスできます。

于 2013-03-24T05:04:14.783 に答える