Enum.name()
Mọi enum constant kế thừa từ java.lang.Enum, có phương thức name() trả về tên khai báo (chính xác, case-sensitive). Không thể override.
Ví dụ
enum Shape {
CIRCLE, TRIANGLE, SQUARE, RECTANGLE
}
public class EnumNameDemo {
public static void main(String[] args) {
Shape shape = Shape.RECTANGLE;
System.out.println("Tên enum constant: " + shape.name()); // RECTANGLE
// So sánh với toString() – có thể override
System.out.println("toString(): " + shape.toString()); // RECTANGLE
System.out.println("ordinal(): " + shape.ordinal()); // 3 (0-based)
}
}
Kết quả
Tên enum constant: RECTANGLE
toString(): RECTANGLE
ordinal(): 3
Lưu ý: name() trả về tên code (compile-time). toString() có thể override để trả về mô tả thân thiện. Dùng Enum.valueOf(Class, String) để parse ngược từ tên.