Мне нужно сохранять и извлекать перечисления из базы данных SQLite, которые я решил с помощью совместного использования класса оболочки и перечисления, но я чувствую, что он очень плохо разработан.
Каждый раз, когда я хочу добавить новый элемент в список перечислений, я должен добавить его в три разных места.
Перечисление должно содержать:
- int (или строка) для его представления
- текстовая строка, дающая дополнительный текст о самом enum
- метод для восстановления состояния из базы данных
В настоящее время он выполняется следующим образом:
public class items
{
public enum types {
FOO(0),
BAR(1),
BAZ(2);
private final int _value;
types(int value){_value = value;}
public int value(){return _value;}
}
public static types Get(int i)
{
switch(i)
{
case 0:
return types.FOO;
case 1:
return types.BAR;
case 2:
return types.BAZ;
default:
return null;
}
}
public static String Get(Typer type)
{
switch(type)
{
case FOO:
return "This is foo!";
case BAR:
return "This is bar!";
case BAZ:
return "This is baz!";
default:
return "No good!";
}
}
}
Есть ли лучший способ справиться с этим?