Une application exécutée dans Java 1.8 doit s'exécuter dans quelques boîtes avec Java 1.4. L'application utilise beaucoup de constantes (des milliers d'entre elles) et tout est mis en œuvre en utilisant des énumérations fonctionnelles. Quel est le meilleur moyen de le rendre compatible inverse?Implémentation d'une énumération pour la compatibilité inverse
EDIT:
Je l'ai déjà vu quelques réponses, mais aucun d'entre eux sont satisfaisants. Donc, pour faire comprendre ce que je suis en train de faire ici, s'il vous plaît jeter un oeil à l'un petit exemple ci-dessous
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;
}
}
}
}
qui sera consommée par quelque chose comme
for (SomeType.TYPE type: SomeType.TYPE.values())
{
if(nodeValue.equalsIgnoreCase(type.getType()))
{
value=type.getDesc();
break;
}
}
Donc, ce ne sera jamais compatible 1.4 et donc je devrais écrire beaucoup de code standard comme expliqué par @Gene dans le lien fourni par lui. Comme il y a tellement de classes comme celle-ci qui contiennent une très grande liste de constantes, je ressens le besoin d'une meilleure approche. La question est donc la recherche d'une meilleure solution.
Consultez ce lien http://stackoverflow.com/questions/1038321/alternative-to-enum-in-java-1-4 – 11thdimension
J'ai montré comment dupliquer la plupart de ce que font enums (y compris les méthodes membres) dans cette réponse http://stackoverflow.com/questions/4709175/what-are-enums-and-why-are-the-useful/15080106#15080106. La principale chose que cette technique ne fait pas est de bien jouer avec 'switch'. Mais vous un commutateur sur une valeur de membre scalaire. – Gene
@ 11thdimension J'ai vu cela. Mais mon problème est plus quand il s'agit de changer de cas. – RBz