Guten Tag SO Leute. Ich habe ein Problem bezüglich der Rückgabe der inneren Enum-Werte meines Enums. Ich weiß nicht, welcher Rückgabetyp verwendet werden soll. Ich habe versucht zu googeln und stieß auf einige Lösungen, die Generika verwendet, aber ich habe immer noch kein Glück. Ich weiß nicht, ob meine Frage eine Lösung oder wahrscheinlich ein schlechtes Design hat. Also hier geht, unter ist meine enum.Java - Rückgabetyp für Enum-Werte
public enum KEYS
{
A("value"),
B("value"),
C("value");
public enum KEYS_GROUP_A
{
ITEM_A ("value"),
ITEM_B ("value"),
ITEM_C ("value");
private String value;
private KEYS_GROUP_A(String _value)
{
value = _value;
}
public String getVal()
{
return value;
}
}
public enum KEYS_GROUP_B
{
ITEM_A ("value"),
ITEM_B ("value"),
ITEM_C ("value");
private String value;
private KEYS_GROUP_B(String _value)
{
value = _value;
}
public String getVal()
{
return value;
}
}
public enum KEYS_GROUP_C
{
ITEM_A ("value"),
ITEM_B ("value"),
ITEM_C ("value");
private String value;
private KEYS_GROUP_C(String _value)
{
value = _value;
}
public String getVal()
{
return value;
}
}
private String value;
private PROPERTY_KEYS(String _value)
{
value = _value;
}
public String getVal()
{
return value;
}
public <?> getEnumValues(int x)
{
if (0 == x)
{
return KEYS.KEYS_GROUP_A.values();
}
else if (1 == x)
{
return KEYS.KEYS_GROUP_B.values();
}
else
{
return KEYS.KEYS_GROUP_C.values();
}
}
}
Was ich versuche ist die getEnumValues()
Methode. Ich habe versucht, den Rückgabetyp <T extends Enum<T>> T
, aber immer noch ein Fehler auftritt. Bitte sagen Sie mir, ob mein Design schlecht ist oder nicht. Bitte geben Sie einige Referenzen an. Ich bin bereit zu lesen und zu lernen. Bitte werfen Sie etwas Licht! Danke im Voraus!
"Ein Fehler tritt auf" ist keine Beschreibung eines Fehlers. Wenn Sie einen Stack-Trace haben, posten Sie ihn. Wenn Sie einen Kompilierungsfehler haben, melden Sie den Fehler. – khelwood
Beobachten Sie den Konstruktor in KEYS_GROUP_B und KEYS_GROUP_C. Ein Copy-Paste-Fehler, bei dem die Konstruktoren für alle drei geschachtelten Enumerationen den Namen KEYS_GROUP_A erhalten haben. PROPERTY_KEYS - was ist das? Meinst du KEYS stattdessen? – Madhusudhan
'(0 == x)' kompiliert nicht, Sie vergleichen 'int' mit' String'. –