Enum de Java et si la déclaration, est-il une meilleure façon de le faire?

J'ai un java Enum classe, et à l'exécution, je vais lire une valeur de ligne de commande, et je veux correspondre à cette valeur à une valeur dans mon Enum classe. Shipper est mon Enum Class. Est-il une meilleure façon de le faire, plutôt que de se if et else if ci-dessous? Cette moche.

private List<Shipper> shipperName = new ArrayList<Shipper>();
...
public void init(String s){ 
    if(s.equals("a")){
        shipperName.add(Shipper.A);
    }else if(s.equals("b")){
        shipperName.add(Shipper.B);
    }else if(s.equals("c")){
        shipperName.add(Shipper.C);
    }else if(s.equals("d")){
        shipperName.add(Shipper.D);
    }else if(s.equals("e")){
        shipperName.add(Shipper.E);
    }else{
        System.out.println("Error");
    }
}

Voici mon Shipper.class

public enum Shipper
{
    A("a"),
    B("b"),
    C("c"),
    D("e"),
    F("f")
;

    private String directoryName;

    private Shipper(String directoryName)
    {
         this.directoryName = directoryName;
    }

    public String getDirectoryName()
    {
         return directoryName;
    }
}
(Et si s ne correspond pas à un nom?)
Puis d'erreur sera imprimé.
Ce n'est pas ce que le code dit (et je suis un grand croient en croyant code sur la documentation).
juste mettre à jour le code. Désolé à ce sujet.

OriginalL'auteur Thang Pham | 2011-05-12