Я перерабатываю старый код и нахожу класс «Тэги», содержащий строковые константы, большинство из которых теги, используемые некоторыми обработчиками XML-Parser-Handlers. Но и для сериализации данных. Они определены пустым:константы строки инициализации отражением
public static String PROXY, NAME, X, Y, KEY, ... CODES;
и инициализируется своим собственным именем:
static {
Field[] fields = Tags.class.getFields();
for (int i = 0; i < fields.length; ++i) {
try {
// init field by its lowercased name
String value = fields[i].getName().toLowerCase();
fields[i].set(null, value);
} catch (Exception e) {
// exception should not occur, because only strings over here.
e.printStackTrace();
}
}
}
Имеет ли смысл на ваш взгляд? Плюсы:
- все теги в одном месте
- гарантируется соответствие между именем & значением (без опечаток)
- поддержки со стороны IDE автозавершения при вводе
Минусы:
- не совсем постоянные (не окончательные)
- читаемости - просто использовать строковые литералы «прокси», «имя» и т.д. будет более простым
- инициализация отражения потребляет время обработки - задержки время запуска
Так - держать его или реорганизовать его?
Я бы, вероятно, попытался использовать 'enum' для этого. – Pshemo
Мальчик это очень напоминает значения ENUM. Почему бы не понять способ использования ENUM с этими значениями? –