Enum с константами

Рейтинг: 0Ответов: 2Опубликовано: 08.11.2014

Добрый день.

Не подскажите, можно ли создать enum, чтобы каждому перечислению множества соответствовала константа (которую можно вызвать).

Что-то типа (только с возможностью обращения к константе):

 enum Entity{
    TEXT{ public static final String REG_EXP_TEXT ="[a-wA-Wа-яА-я]"; },
    NUMBER{ public static final String REG_EXP_TEXT ="(?:\\d*\\.)?\\d+"; }
}

Буду рад любым подсказкам.

Ответы

▲ 3
enum Entity {
    TEXT("[a-wA-Wа-яА-я]"),
    NUMBER("(?:\\d*\\.)?\\d+");

    public final String REG_EXP_TEXT;

    Entity(String regExp){
        this.REG_EXP_TEXT = regExp;
    }

}
▲ 1

Я думаю, в данном случае вам лучше использовать интерфейс.

public interface RegularExpressions {
    public static final String REG_EXP_TEXT ="[a-wA-Wа-яА-я]";
    public static final String REG_EXP_TEXT ="(?:\\d*\\.)?\\d+";
}

Смысл не поменяется, а читабельность кода будет лучше. Нет-нет, я не говорю, что это нереально, просто приседания в использовании натолкнут вас именно на замену Enum на Interface.

как здесь