Ich möchte aus dem Aufzählungstyp den Namen des Aufzählungstyp abzurufen selbst:Java Enum-Typ Name Reflexion
enum Mammals {
DOG(new Dog()),
CAT(new Cat());
public String alias;
Mammals(AncestorOfDogAndCat a){
this.alias=this.getClass().getName().toLowerCase();
System.out.println(alias);
}
}
Als ich ihnen Instanz ich
Main$mammals
Main$mammals
bekommen, aber ich will
dog
cat
Sie übergeben Parameter nicht auf Konstruktor, aber ich kann sehen, dass jede Enum-Konstante Werte hat. Warum? – atiqkhaled
@atiqkhaled Entschuldigung, ich habe überflüssigen Code entfernt, aber etwas Müll hinterlassen. – michelemarcon
Ich verstehe nicht, warum Sie die Dog-Instanz übergeben müssen, wenn Sie sie nicht verwenden oder speichern. Es gibt mehrere Antworten, die sich bereits auf die 'name() 'Methode stützen, aber wenn Sie die Instanz brauchen, rufen Sie nicht einfach ihre' toString' Methode auf? Dies würde den Druck abhängig von der Hund/Katze-Instanz anstelle des Namens des Aufzählungstyps machen. –