tworzę moje enums przez odbicie, na które mogę dodać do każdej wyliczenia wewnętrzna klasy, która implementuje Abstract Factory. Teraz chcę, aby uzyskać dostęp do tej wewnętrznej klasy w celu wywołania metody:klasa Annotate z wewnętrznym klasy
@Factory(FooFactory.class)
public enum Foo {
FOO, BAR;
public class FooFactory implements AbstractFactory<Foo> {
public Foo create(String value) {
return valueOf(value.toUpperCase());
}
}
}
Definicja @Factory
jest:
@Retention(RetentionPolicy.RUNTIME)
public @interface Factory {
Class<?> value();
}
Z tym jednak, że pojawia się następujący błąd:
Klasy nie można rozstrzygnąć na typ FooFactory.java
Kiedy próbuję @Factory(Foo$FooFactory.class)
Otrzymuję błąd :
zagnieżdżona Foo $ FooFactory nie można referneced użyciu jego nazwy binarnej.
Czy możliwe jest odniesienie do klasy zagnieżdżonej?
Podejrzewam, że FooFactory musi być 'public static class'. – Charlie
@ Charlie Próbowałem już tego. –
wyliczenia są zwykle dla stałych, znanych wartości. Wydaje się to trochę dziwne. –