Приложение, работающее на java 1.8, должно запускаться в нескольких коробках с java 1.4. В приложении используется множество констант (их тысячи), и все реализовано с помощью функциональных перечислений. Как лучше всего сделать его обратно совместимым?
РЕДАКТИРОВАТЬ:
Я уже видел несколько ответов, но ни один из них не является удовлетворительным. Итак, чтобы прояснить, чего я пытаюсь достичь здесь, взгляните на небольшой пример, как показано ниже.
public class SomeType
{
public enum TYPE
{
ERROR("allError","4"),
INPUT("allInput","5"),
OFFLINE("allOffline","6"),;
private final String type;
private final String desc;
TYPE(String type, String desc)
{
this.type = type;
this.desc = desc;
}
public String getType(){
return this.type;
}
public String getDesc(){
return this.type;
}
}
}
}
Что будет поглощено чем-то вроде
for (SomeType.TYPE type: SomeType.TYPE.values())
{
if(nodeValue.equalsIgnoreCase(type.getType()))
{
value=type.getDesc();
break;
}
}
Таким образом, это никогда не будет совместимо с версией 1.4, и поэтому мне пришлось бы написать много шаблонного кода, как объяснил @Gene в предоставленной им ссылке. Поскольку существует так много классов, подобных этому, содержащих очень большой список констант, я чувствую необходимость в лучшем подходе. Итак, вопрос заключается в поиске лучшего решения.
switch
. Но вы включаете значение скалярного члена. - person Gene   schedule 19.04.2016