Правильно ли я оформил перечисление?

Есть отдельный .java файл с перечислением enum, можно ли так перегружать метод toString, и правильно ли вообще использовать условные операторы в этом случае?

public enum FoodType {
    ALL_INCLUSIVE,
    BREAKFAST_ONLY,
    NOT_INCLUDET;

    @Override
    public String toString() {
        if (super.toString() == "ALL_INCLUDIVE") {
            return "Все включено";
        }
        if (super.toString() == "BREAKFAST_ONLY") {
        return "Только завтрак";
        }
        if (super.toString() == "NOT_INCLUDET") {
            return "Не включено";
        }
        return "Nothing";
    }
}

Ответы (1 шт):

Автор решения: Дмитрий

Ответ: разумеется, это неправильно, причем по многим причинам. Предлагаю другой вариант решения проблемы. Дело в том, что enum в Java - это прежде всего класс (просто немного особенный), а, следовательно, он тоже может иметь поля. Посему я бы на вашем месте завел поле для хранения строки и пользовался бы геттером. И еще... Хватит сравнивать строки (как и любые другие объекты) с помощью ==, для этого есть метод equals.Оставьте == для примитивов и enum.

public enum FoodType {
    ALL_INCLUSIVE("Все включено"),
    BREAKFAST_ONLY("Только завтрак"),
    NOT_INCLUDET("Не включено");
    
    private final String value;

    private FoodType(String value) {
        this.value = value;
    }

    public String getValue() {
        return value;
    }
    
}
→ Ссылка