Enum zawierający inny enum- problem z jego wartością

Enum zawierający inny enum- problem z jego wartością
S-cat
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 83
0

Cześć! Mam zdefiniowanego takiego enuma:

Kopiuj
 public enum MenuItem {
	
	ItemA("ItemALabel", 0, SomeEnum.A),
	ItemB("ItemBLabel", 1, SomeEnum.B);
	
 	private String itemLabel;
 	private int positionIndex;
 	private SomeEnum someEnum;
	
	private MenuItem(String itemLabel, int positionIndex, SomeEnum someEnum) {
		this.itemLabel = itemLabel;
		this.positionIndex = positionIndex;
		this.someEnum = someEnum;
	}
    

	public String getItemLabel() {
		return text;
	}

	public int getPositionIndex() {
		return positionIndex;
	}
	
	public getSomeEnum() {
		return this.someEnum;
	}
	
}

Później chcę wywołać coś na kształt:

Kopiuj
ArrayList<SomeEnum> list = new ArrayList<SomeEnum>();
for (MenuItem key : MenuItem.values()) {
			list.add(key.getSomeEnum());
		} 

W liście spodziewałem się wartości SomeEnum.A oraz SomeEnumB. A zapisuje najwidoczniej tylko ostatnią z nich, bo wszystkie elementy listy mają wartość SomeEnum.B. Jeśli zamienię miejscami ItemA i ItemB w MenuItem, to do listy zapisują się same SomeEnum.A. Pozostałe pola działają prawidłowo- oznacza to, że Enum zdefiniowany wewnątrz enuma jest z definicji statyczny?

EDIT:
Pisząc ostatnie zdanie tego posta, uświadomiłem sobie, jak szukać w google i trafiłem na informacje które potwierdzają moje podejrzenia. :( Powinienem zatem wewnątrz MenuItem stworzyć

Kopiuj
 List<SomeEnum>

i inicjalizować ją razem z MenuItem czy da się to rozwiązać lepiej?

jarekr000000
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: U krasnoludów - pod górą
  • Postów: 4712
4
S-cat napisał(a):

W liście spodziewałem się wartości SomeEnum.A oraz SomeEnumB. A zapisuje najwidoczniej tylko ostatnią z nich, bo wszystkie elementy listy mają wartość SomeEnum.B

Jakaś bezedura.

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
2

Opowiadasz bzdury.
http://ideone.com/gtTzPg

S-cat
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 83
0

Jak zwykle macie rację, Panowie. :) Problem leżał w zupełnie dla mnie niespodziewanym miejscu.

Dziękuję wam bardzo, miłego wieczoru. :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.