| 

.NET C# Java Javascript Exception

1
ch habe bislang mit VB entwickelt und habe dort die Möglichkeit, bei Enumerationen abweichende ertzuweisungen in der folgenden Form vorzunehmen:

Enum MeineWerte
Wert1 = 5
Wert2 = 10
Wert3 = 15
End Enum


Anschjließend kann ich direkt auf den Wert des jeweiligen Elements zugreifen:

Dim v As eMy = MeineWerte.Wert2
'hier hat v den Wert 10


Ich möchte jetzt einige Routinen und Enumerationdatentypen mit entsprechender Funktionalität unter Java übernehmen, habe aber keine entsprechende Fun ktionalität gefunden. Wie bilde ich diesen Enumerationsdatentp am besten unter Java nach?
23.04.2012
pepyrs 1 1
2 Antworten
0
Folgendes sollte dir helfen. Ganz verstanden hab ich es zwar auch nicht wozu man das "someint" braucht aber ich komm auch nicht aus der Java sondern aus der C# Welt.

public enum MeineWerte {
Wert1(5),
Wert2(10),
Wert3(15);

private final int someint;
MeineWerte(int someint) {
this.someint = someint;
}
}

Original
23.04.2012
Floyd 14,6k 3 9
0
Kein Kommentar, da der Text etwas länger wird:
@Floyd
Leider hast du das Beispiel nicht vollständig kopiert.
Im Gegensatz zu VB und .NET sind enums in Java keine einfachen sondern komplexe Typen. Das heißt eine enum-Deklaration in Java ist im Prinzip eine Klassendefinition und die einzelnen Werte sind Instanzen dieser Klasse. Im Beispiel dieses Links wird zur Klasse also ein Constructor hinzugefügt, der einen int-Parameter hat und die Deklaration der einzelnen enum-Werte ruft dieses Constructor mit einem entsprechenden Parameterwert auf. Damit man nun von außen auf die Werte zugreifen kann, muss noch ein getter geschrieben werden, wie bspw.
public int getIndex()
{
return someint;
}

Der Wert des Enums kann dannn bspw. über Wert1.getIndex() abgerufen werden, was hier dann 5 zurückgeben würde. Um einen int in den entsprechenden Enum-Wert umzuwandeln, benötigtst du noch eine entsprechende Methode wie fromInt() o.ä.
Vorteil ist, dass du in Java zu enums alles hinzufügen kannst, was auch Klassen unterstützen, also Felder, Methoden etc., was unter .NET nur über Erweiterungsmethoden ähnlich realisierbar wäre.
23.04.2012
LunaticShade 507 4

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH