1

Enum を使用して階層型システムを作成しようとしています。Enum を使用したことがありません。

このメソッドは常に Peasant を返します。「これ」を間違って使用している、または列挙型を完全に誤解している可能性があるためだと思います。

public enum Rank {
    PEASANT,
    TRADER,
    SQUIRE,
    MERCHANT,
    KNIGHT,
    NOBLE,
    KING;

    public Rank getNextRank() {
        switch (this) {
        case PEASANT:
            return SQUIRE;
        case SQUIRE:
            return KNIGHT;
        case KNIGHT:
            return NOBLE;
        case NOBLE:
            return KING;
        case KING:
            return PEASANT;
        }
        return PEASANT;
    }
}

(KINGケースは必要ないことはわかっていますが、読みやすさのために気に入っています)

戻りたい、Rank.PEASANT.getNextRank()戻りたいなどRank.SQUIRERank.NOBLE.getNextRank()Rank.KING

4

2 に答える 2