Les meilleures pratiques pour rechercher Java Enum

Nous avons une API REST, où les clients peuvent fournir des paramètres représentant les valeurs définies sur le serveur en Java Enums.

Afin de fournir une description de l'erreur, nous ajoutons cette lookup méthode pour chaque Enum. Semble que nous sommes simplement de copier le code (bad). Est-il préférable?

public enum MyEnum {
    A, B, C, D;

    public static MyEnum lookup(String id) {
        try {
            return MyEnum.valueOf(id);
        } catch (IllegalArgumentException e) {
            throw new RuntimeException("Invalid value for my enum blah blah: " + id);
        }
    }
}

Mise à jour: par défaut, Le message d'erreur fourni par valueOf(..) serait No enum const class a.b.c.MyEnum.BadValue. Je voudrais donner une description de l'erreur à partir de l'API.

  • Eh bien, il n'y a rien de mal avec le IllegalArgumentException, ce qui est déjà une RuntimeException. Que voulez-vous améliorer ici ?
  • Ajoutez un message descriptif de celui qui est prévu quand il vient à l'aide de valueOf (et IllegalArgumentException)
InformationsquelleAutor Marcus Leon | 2010-03-10