if (match any enum) then

Du kan i dette forum stille og svare på spørgsmål vedrørende Java programmering på alle typer platforme.
Besvar
cristian
Moderator
Moderator
Indlæg: 882
Tilmeldt: 26. sep 2011, 21:31
Kontakt:

if (match any enum) then

Indlæg af cristian » 13. maj 2017, 16:08

Jeg har en enum klasse

Kode: Vælg alt

	AQUEOUS_LIQUIDS("2268"),
	AUTOTROPHS("2305"),
	BASE_METALS("2267"),
	CARBON_COMPOUNDS("2288"),
	COMPLEX_ORGANISMS("2287"),
	FELSIC_MAGMA("2307"),
	HEAVY_METALS("2272"),
	IONIC_SOLUTIONS("2309"),
	MICROORGANISMS("2073"),
	NOBLE_GAS("2310"),
	NOBLE_METALS("2270"),
	NON_CS_CRYSTALS("2306"),
	PLANKTIC_COLONIES("2286"),
	REACTIVE_GAS("2311"),
	SUSPENDED_PLASMA("2308");
hvor jeg gerne vil tjekke hver enum i en if statement.
I hånden kunne jeg godt lave en if statement med 15 argumenter

Kode: Vælg alt

if(something1.equals(something2) || something1.equals(something3) ||...)
Men hvordan kan man få en if statement til at tjekke hver værdi i
ENUM_KLASSE.values() ?

jepperask
Geni
Geni
Indlæg: 378
Tilmeldt: 4. nov 2012, 17:57

Re: if (match any enum) then

Indlæg af jepperask » 13. maj 2017, 16:36

Hvad er det helt præcist du vil tjekke og hvor får du variablen du skal tjekke op mod dit enum fra?

Kode: Vælg alt

		MyEnum f = MyEnum.SUSPENDED_PLASMA;
		for (MyEnum e : MyEnum.values()) {
			System.out.println("Matching " + e + " and " + f);
			if (e.equals(f)) {
				System.out.println("MATCH! : " + e + " and " + f);
			}
		}

cristian
Moderator
Moderator
Indlæg: 882
Tilmeldt: 26. sep 2011, 21:31
Kontakt:

Re: if (match any enum) then

Indlæg af cristian » 13. maj 2017, 18:45

Hvad er det helt præcist du vil tjekke og hvor får du variablen du skal tjekke op mod dit enum fra?
Jeg har en konto hos CCP til EVE Online da det er et super sted at hive live data ud til at arbejde med,
i dette tilfælde er det market data, salg og køb.

Da dette hentes som XML data, har jeg en klasse i Java som tager hver salgs / købs linje
og laver et tilhørende objekt som har en typeID.

Det jeg vil i denne omgang er at tage typeID og se om det matcher min enum liste.
Hvis det gør, gør X.

cristian
Moderator
Moderator
Indlæg: 882
Tilmeldt: 26. sep 2011, 21:31
Kontakt:

Re: if (match any enum) then

Indlæg af cristian » 14. maj 2017, 14:16

Jaja så efter en pause og noget mad i går så gav det hele jo mere mening.
Og det jeg endte med at spørge om var ikke engang det jeg søgte svar på :shock:

enum.values(); havde jeg jo i forvejen og kast den ind i en løkke og så kan du travle værdierne igennem.

Det jeg i virkeligheden prøvede på var at komme en Enum klasse ind i en Enum[] liste
sådan så jeg kunne køre 1 eller flere lister som nødvendigt.
I stedet for at lave 1 stor liste som måske ikke er 100% nødvendig men at lave flere 'mindre store' lister bliver for besværligt at vedligeholde.

Indtil videre har jeg ikke fundet en måde at gøre dette, da jeg ikke kan lave et objekt af klassen
da Enum klasser ikke kan instantierers, og jeg kan ikke lave en reference til klassen heller som accepteres.

Besvar