Как вытащить объект enum по значению?

153
22 марта 2019, 23:50

Есть код (ниже). Мне нужно вытащить MOSCOW по uid. Как возможно сделать?

public enum Region {
        MOSCOW("Москва", 77, "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"),
        MOSKOVSKAYAOBLAST("Московская область", 50, "29251dcf-00a1-4e34-98d4-5c47484a36d4");
        private final String label;
        private final Integer codeRegion;
        private final String uid;
        Region(String label, Integer codeRegion, String uid) {
            this.label = label;
            this.codeRegion = codeRegion;
            this.uid = uid;
        }
    }
Answer 1

Возможно есть более прямые способы, но чтобы каждый раз не перебирать весь список можно сделать карту и метод getRegByUid(String uid)

    public enum Region {
    MOSCOW("Москва", 77, "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"),
    MOSKOVSKAYAOBLAST("Московская область", 50, "29251dcf-00a1-4e34-98d4-5c47484a36d4");
    private final String label;
    private final Integer codeRegion;
    private final String uid;
    // карта
    private static Map<String, Region> map = new HashMap<>();
    static {
        for (Region region : Region.values()){
            map.put(region.uid, region);
        }
    }
    // get по uid
    public static Region getRegByUid(String uid) {
        return map.get(uid);
    }
    Region(String label, Integer codeRegion, String uid) {
        this.label = label;
        this.codeRegion = codeRegion;
        this.uid = uid;
    }
}
Answer 2

Вот так получилось:

public static Region getNameByCode(String code){
        for(Region e : Region.values()){
            if(code == e.getUid())
                return e;
        }
        return null;
    }
Answer 3
public enum Region {
     MOSCOW{
        @Override
        public  String getUid(){
            return "0c5b2444-70a0-4932-980c-b4dc0d3f02b5";
        }
    }

public abstract  String getUid();
}
READ ALSO
Android Room - сохранение зависимостей

Android Room - сохранение зависимостей

Пытаюсь приспособить Room для работы с зависимостями "один-ко-многим"Про то, как использовать @Relation для чтения записей рассказывается в [1,2,3,4]

139
Не выводится текст из spring bean

Не выводится текст из spring bean

Пытаюсь освоить SpringДелаю все по видео Spring Потрошитель, но на экран ничего не выходит

163
Добавить кнопку перезагрузки

Добавить кнопку перезагрузки

как ??? В игре Добавить кнопку перезагрузки после проигрыша, чтобы кнопка появлялись в JPanel после проигрыша и при нажатии на неё приложение...

179
Как открывать все полученные url в webview?

Как открывать все полученные url в webview?

Есть приложение которое работает с wordpress, контент открывается через webviewИ вот когда я нажимаю на ссылку в webview она открывается во внешнем браузере,...

128