Trong thư viện của tôi có khái niệm "cấp độ người dùng". Tôi đã cung cấp một số cấp độ mặc định nhưng vì nhiều lý do khác nhau muốn cung cấp cho người dùng tùy chọn sử dụng các cấp của riêng họ.Cách tốt nhất để hỗ trợ "enumable enums" trong chú thích?
Hiện nay điều này được thực hiện như
public interface AdminLevel {
public void name();
}
public enum StandardAdminLevels implements AdminLevel {
ADMIN,
ANONYMOUS
}
Vấn đề là người dùng thường sẽ được đi qua cấp độ người dùng được yêu cầu của họ trong một chú thích. Những điều tôi đã cố gắng và thất bại:
- Sử dụng AdminLevel như các loại - Không có "loại không hợp lệ cho thành viên chú thích"
- Sử dụng String như loại nhưng thiết lập các giá trị với
StandardAdminLevels.ADMIN.name()
- Không có "giá trị thuộc tính phải liên tục" - Làm StandardAdminLevels một lớp học cuối cùng mà không thực hiện bất cứ điều gì với public static thức lĩnh vực đối với từng mức độ (thực chất là một enum) - không có 'loại không hợp lệ cho thành viên chú thích'
có cách khác tôi có thể ' t nghĩ đến việc có enums mở rộng trong chú thích? Tôi đang cố gắng để gắn bó với enums do sự rõ ràng của họ và bảo vệ cơ bản chống lại các giá trị không hợp lệ, nhưng cách duy nhất khác tôi có thể nghĩ đến là String hằng số. Vấn đề tôi có là yêu cầu xác minh ở mọi cấp độ người dùng điểm duy nhất được sử dụng, có khả năng ngay cả trong mã máy khách
Bất kỳ ý tưởng nào?
Một enum có thể mở rộng là mâu thuẫn về mặt. Toàn bộ mục đích của enums là để xác định toàn bộ thiết lập và chỉ cho phép những người đó. – Aurand
@Aurand Chuỗi ma thuật hay ma thuật ints tốt hơn thế nào? Enums vẫn hữu ích ở đây để xác nhận các giá trị – TheLQ
Có gì sai khi có một enum với tất cả các giá trị có thể? –