Wie erhalte ich eine Enumeration nach benutzerdefiniertem Namen in Java?

Delfin

Ich habe in Java 8 eine Aufzählung wie folgt definiert:

public enum Cflb implements IBaseEnum {        
    没收违法所得("没收违法所得、没收非法财物", 2),
    暂扣或者吊销许可证("暂扣或者吊销许可证、暂扣或者吊销执照", 4);
    private String name;
    private int value;

    public void setName(String name) {
        this.name = name;
    }

    public void setValue(int value) {
        this.value = value;
    }

    Cflb(String name, int value) {
        this.name = name;
        this.value = value;
    }

    @Override
    public String getName() {
        return name;
    }

    @Override
    public int getValue() {
        return value;
    }  
}

Wie erhalte ich eine Aufzählung durch "Lizenz aussetzen oder widerrufen, Lizenz vorübergehend zurückhalten oder widerrufen"? Achtung: Die Aufzählung nicht nach Wert abrufen. Der Code könnte so aussehen:

Cflb cflb = getEnumnByInternalName("暂扣或者吊销许可证、暂扣或者吊销执照");
f1sh

Schleifen Sie die Enum-Konstanten mit values()und vergleichen Sie die name:

static Cflb getEnumnByInternalName(String iname) {
  for(Cbfl c : values()){
    if(c.name.equals(iname)){
      return c;
    }
  }
  return null; //or throw an Exception, whatever you need
}

Dann kannst du es so verwenden:

Cflb cflb = Cflb.getEnumnByInternalName("暂扣或者吊销许可证、暂扣或者吊销执照");

Und wie @khelwood oben erwähnt: Entfernen Sie die Setter.

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

TOP Liste

heißlabel

Archiv