Hallo,
ist es möglich Enum zu erweitern?
Bsp:
Also ich weis dass das Konstrukt "public enum EnumB extends EnumA" so von Java nicht akzeptiert wird. Aber vielleicht gibt es ja eine andere Möglichkeit.
Mir geht es darum, dass ich die Ganzen Typen nicht noch mal explizit definieren muss; wenn ich eh weis, dass sie die gleichen sind.
Anwendungsbeispiel:
Ich habe in einer der Datenbank-Tabelle ein Attribut, dass den Typen bezeichnet. Allerdings erhalte ich aus der Tabelle weitere Informatione (erweitert um eine andere Tabelle), so dass es ein neuer Typ (Client-Seitig) ist.
Also ich will die Standard-Typen in einem Enum haben, da es an vielen Stellen (getValues(),...) benötigt wird. Andererseit, werden an wenigen Stellen (ebenfalls getValues(),...) die Standard-Typen + der Extra-Typ benötigt.
Andersrum wäre es mir auch recht. Also wenn ich eine Menge von allen Typen habe, und in der Subklasse nur noch einen Teil.
Wobei ich nicht umbedingt noch ein Extra Atributt setzten will. Zwei "eigenständige" Enums wären mir da lieber.
Anwendungbeispiel:
Ich habe eine Menge an Materialien. Der eine Enum gibt mir alle, der andere nur die aus Metall, oder Holz.
Wäre dankbar, wenn mir jemand eine Idee liefert, wei man das Sauber, und ohne Redundanz hinbekommt.
Grüße,
yaster
ist es möglich Enum zu erweitern?
Bsp:
Java:
public enum EnumA
{
obj1(0),
obj2(1);
protected final int val;
private EnumA(int v)
{
val = v;
}
public String getName()
{
switch (val)
{
case 1: return "object 1";
case 2: return "object 2";
default: return "ERROR";
}
}
}
public enum EnumB extends EnumA
{
objX(2),
objY(3);
private EnumB(int v)
{
val = v;
}
public String getName()
{
switch (val)
{
case 0:
case 1: return super.getName();
case 2: return "object X";
case 3: return "object Y";
default: return "ERROR";
}
}
}
Also ich weis dass das Konstrukt "public enum EnumB extends EnumA" so von Java nicht akzeptiert wird. Aber vielleicht gibt es ja eine andere Möglichkeit.
Mir geht es darum, dass ich die Ganzen Typen nicht noch mal explizit definieren muss; wenn ich eh weis, dass sie die gleichen sind.
Anwendungsbeispiel:
Ich habe in einer der Datenbank-Tabelle ein Attribut, dass den Typen bezeichnet. Allerdings erhalte ich aus der Tabelle weitere Informatione (erweitert um eine andere Tabelle), so dass es ein neuer Typ (Client-Seitig) ist.
Also ich will die Standard-Typen in einem Enum haben, da es an vielen Stellen (getValues(),...) benötigt wird. Andererseit, werden an wenigen Stellen (ebenfalls getValues(),...) die Standard-Typen + der Extra-Typ benötigt.
Andersrum wäre es mir auch recht. Also wenn ich eine Menge von allen Typen habe, und in der Subklasse nur noch einen Teil.
Wobei ich nicht umbedingt noch ein Extra Atributt setzten will. Zwei "eigenständige" Enums wären mir da lieber.
Anwendungbeispiel:
Ich habe eine Menge an Materialien. Der eine Enum gibt mir alle, der andere nur die aus Metall, oder Holz.
Wäre dankbar, wenn mir jemand eine Idee liefert, wei man das Sauber, und ohne Redundanz hinbekommt.
Grüße,
yaster