Mam kilka wyliczeń, które można znaleźć przez int. Odbywa się to metodą statyczną w wyliczeniu. Na przykład:Metody statyczne w interfejsach nie działają, jak uzyskać określoną wartość wyliczeniową z kilku wyliczeń?
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;
...
}
}
...
Teraz w niektórych kodu Mam ogólny typ T
który jest gwarancją jednego z tych teksty stałe i mam całkowitą i
. Jak mogę wywołać metodę fromInt
i pobrać wystąpienie wyliczenia według wartości i
?
Próbowałem stworzyć interfejs za pomocą statycznej metody fromInt
i pozwolić, aby enum zaimplementował go, ale statyczne metody nie działają w interfejsach.
nie mogę używać Java 8.
Co z odbiciem? –
Masz więc gdzieś zmienną 'Class', prawda? Czy możesz podać swój kod tego rodzaju? –
sp00m
Czy masz pewność, że zestawy wartości 'int' w' Foo' i 'Bar' są rozłączne? – bradimus