Есть код (ниже). Мне нужно вытащить 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;
}
}
Возможно есть более прямые способы, но чтобы каждый раз не перебирать весь список можно сделать карту и метод 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;
}
}
Вот так получилось:
public static Region getNameByCode(String code){
for(Region e : Region.values()){
if(code == e.getUid())
return e;
}
return null;
}
public enum Region {
MOSCOW{
@Override
public String getUid(){
return "0c5b2444-70a0-4932-980c-b4dc0d3f02b5";
}
}
public abstract String getUid();
}
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники