Tôi có một số enums có thể được tìm thấy bởi một int. Điều này được thực hiện bằng một phương thức tĩnh trên enum. Ví dụ:Phương pháp tĩnh trong giao diện không hoạt động, làm thế nào để có được giá trị enum cụ thể từ một số enums?
enum Foo {
A, B, C, D, ... ;
public static Foo fromInt(int i) {
switch(i) {
case 15: return A;
case 42: return B;
...
}
}
enum Bar {
BLA, BOO, BEE, ... ;
public static Bar fromInt(int i) {
switch(i) {
case 78: return BLA;
case 22: return BOO;
...
}
}
...
Bây giờ trong một số mã tôi có một kiểu generic T
mà được đảm bảo là một trong những sự đếm và tôi có một số nguyên i
. Làm thế nào tôi có thể gọi phương thức fromInt
và nhận được cá thể của enum theo giá trị i
?
Tôi đã thử tạo giao diện với phương thức tĩnh fromInt
và để enums triển khai, nhưng các phương thức tĩnh không hoạt động trong giao diện.
tôi không thể sử dụng Java 8. Câu trả lời
Còn phản ánh thì sao? –
Vì vậy, bạn có một biến 'Class' ở đâu đó, đúng không? Bạn có thể cung cấp mã của bạn với loại chung này không? –
sp00m
Bạn có chắc chắn rằng các tập hợp các giá trị 'int' trong' Foo' và 'Bar' được phân tách không? – bradimus