Chúng tôi có một API REST nơi khách hàng có thể cung cấp các tham số đại diện cho các giá trị được xác định trên máy chủ trong Java Enums.Thực hành tốt nhất để tra cứu Java Enum
Vì vậy, chúng tôi có thể cung cấp lỗi mô tả, chúng tôi thêm phương thức lookup
này vào mỗi Enum. Có vẻ như chúng tôi chỉ đang sao chép mã (xấu). Có cách nào tốt hơn không?
public enum MyEnum {
A, B, C, D;
public static MyEnum lookup(String id) {
try {
return MyEnum.valueOf(id);
} catch (IllegalArgumentException e) {
throw new RuntimeException("Invalid value for my enum blah blah: " + id);
}
}
}
Cập nhật: Các thông báo lỗi mặc định được cung cấp bởi valueOf(..)
sẽ No enum const class a.b.c.MyEnum.BadValue
. Tôi muốn cung cấp lỗi mô tả hơn từ API.
Vâng, không có gì sai với IllegalArgumentException, mà đã là một RuntimeException. Bạn muốn cải thiện điều gì ở đây? – Riduidel
Thêm thông điệp mô tả hơn so với thông báo được cung cấp khi chỉ sử dụng 'valueOf' (và' IllegalArgumentException') –