Enum w Javie

Dość często zdarza się, że musimy stworzyć takie pole, które reprezentuje potencjalny wybór użytkownika. Na przykład walutę, w której można dokonać transakcji. Jednym z najrozsądniejszych podejść w takim przypadku jest użycie typu wyliczeniowego enum.

Język Java daje naprawdę duże możliwości jeżeli chodzi o enum.

Czym tak naprawdę jest enum? Bardzo obrazowo, enum pozwala nam aby nasza zmienna mogła być wybierana z zestawu predefiniowanych stałych.

Aby w javie stworzyć enum wystarczy użyć następującej składni.

public enum <TypName> {
	CASE-1,
	CASE-2,
	…
}

Na przykład:

public enum CurrencyType {
    PLN,
    EUR,
    USD
}

Wywołanie enum w kodzie poprzez wpisanie nazwy (nie trzeba używać operatora new !), pozwala uzyskać dostęp do jego zasobów. Można bezpośrednio użyć wartości zdefiniowanych dla tego enum (w tym przypadku (PLN, EUR, USD) lub do całej zawartości enum przez metodę values();

//wypisanie wszystkich typów z enum CurrencyType

for(CurrencyType type: CurrencyType.values()) {
	System.out.println(type);
}

Do podanych typów w naszym przypadku można dołączyć przypisane wartości. Niech to będą przeliczniki na PLN. Aby uzyskać możliwość dodawania tych wartości oraz późniejszego do nich dostępu tworzymy pole, konstruktor i getter!!!

public enum CurrencyType {
    PLN(1),
    EUR(4.2),
    USD(3.8);

    private final double exchangeRate;

   CurrencyType(double exchangeRate) {
	this.exchangeRate = exchangeRate;
   }

   public double exchangeRate() {
	   return exchangeRate;
   }
}

Wywołanie takiego enum w kodzie wygląda następująco.

CurrencyType.EUR.exchangeRate() -> zwraca wartość exchange rate typu double.

Wewnątrz ciała enum można też dodawać pola statyczne i używać wewnątrz napisanych metod.

Dodajmy pole statyczne marża zwiększające przelicznik w specyficznych przypadkach (np.: zależnych od logiki biznesowej) oraz metodę zwiększającą przelicznik waluty

private static final double MARGIN_TO_ADD = 0.2;

public double newExchangeRate(double exchangeRate) {
	return exchangeRate + MARGIN_TO_ADD;
}

Jak widać tym wyliczeniowy w Javie daje nam sporo możliwości oraz jest bardzo elastyczny w użyciu. Zachęcam wszystkich początkujących adeptów kodowania do dodania typu wyliczeniowego – enum do wachlarza swoich umiejętności programistycznych.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *