Enum-uri în Java — Câmpuri, Metode și Switch
In this tutorial, you'll learn about Enum. We cover key concepts, practical examples, and best practices.
Enum-urile în Java sunt tipuri speciale care definesc un set fix de constante denumite, putând conține câmpuri, metode și constructori, oferind mult mai multă flexibilitate decât constantele tradiționale cu int sau String.
The Problem
Constantele numerice sau string-uri pentru stări și tipuri duc la cod fragil, greu de citit și fără siguranța tipurilor la compilare. Acest quick-fix îți arată cum să folosești enum-uri pentru cod mai robust.
The Wrong Way
public static final int STATUS_ACTIVE = 1;
public static final int STATUS_INACTIVE = 2;
if (status == 1) { ... } // ce înseamnă 1? greu de citit
The Right Way
public enum Status {
ACTIVE,
INACTIVE,
PENDING
}
if (status == Status.ACTIVE) { ... } // clar și type-safe
Step-by-Step Fix
1. Adaugă câmpuri și constructor
public enum Status {
ACTIVE("Contul e activ"),
INACTIVE("Contul e inactiv"),
PENDING("Contul e în așteptare");
private final String description;
Status(String description) {
this.description = description;
}
public String getDescription() {
return description;
}
}
2. Folosește enum în switch
switch (status) {
case ACTIVE -> System.out.println("Utilizator activ");
case INACTIVE -> System.out.println("Utilizator inactiv");
case PENDING -> System.out.println("În așteptare");
}
3. Metode abstracte per constantă
public enum Operation {
ADD { public int apply(int a, int b) { return a + b; } },
SUBTRACT { public int apply(int a, int b) { return a - b; } };
public abstract int apply(int a, int b);
}
Prevention Tips
- Folosește enum în loc de constante int/String pentru tipuri fixe
- Poți implementa interfețe în enum-uri
- Enum-urile au
values()șivalueOf()built-in - Folosește
EnumSetșiEnumMappentru performanță optimă cu enum-uri
Common Mistakes
- Compararea cu == vs equals() — pentru enum-uri,
==e sigur (o singură instanță per constantă). - Adăugarea de câmpuri mutable în enum — enum-urile ar trebui să fie imutabile. Declară câmpurile
final. - Switch fără a acoperi toate cazurile — nu apare eroare de compilare. Activează warning-urile compilatorului.
FAQ
Construit de dezvoltatorii Doda Browser, DodaZIP și Durga Antivirus Pro. Instrumentele DodaTech se integrează perfect cu Java pentru productivitate și securitate sporite.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro