Tôi đang cố gắng giải quyết một lỗi biên dịch ("Bound mismatch: ...") liên quan đến tra cứu enum động.Enum.valueOf (Class <T> enumType, String name) question
Về cơ bản tôi muốn đạt được một cái gì đó như thế này:
String enumName = whatever.getEnumName();
Class<? extends Enum<?>> enumClass = whatever.getEnumClass();
Enum<?> enumValue = Enum.valueOf(enumClass, enumName);
Dù tôi làm, tôi luôn kết thúc với rằng lỗi biên dịch. Thành thật mà nói, generics và enums khá mindboggling với tôi ...
Tôi đang làm gì sai ở đây?
Câu hỏi đặt ra là về enums, Generics và phản ánh. Nếu bạn bỏ qua Generics Đặc biệt là cho "loại hiếm" như 'Lớp Mở rộng Enum>' –
Vấn đề là a) nó không thể hoạt động nếu không có phương thức trợ giúp hoặc kiểu và b) chúng ta biết chắc chắn rằng 'Lớp mở rộng Enum> 'cũng sẽ thỏa mãn' Lớp> '(vì đó là cách các lớp enum hoạt động) mặc dù không có cách nào để kiểm tra mà không có biến kiểu. '@ SuppressWarnings' là chú thích bạn chỉ nên sử dụng nếu bạn biết mình đang làm gì và tôi biết. –