リフレクションによって列挙型を作成します。そのために、抽象ファクトリを実装する内部クラスを各列挙型に追加します。メソッドを呼び出すために、この内部クラスにアクセスします。
@Factory(FooFactory.class)
public enum Foo {
FOO, BAR;
public class FooFactory implements AbstractFactory<Foo> {
public Foo create(String value) {
return valueOf(value.toUpperCase());
}
}
}
の定義@Factory
は次のとおりです。
@Retention(RetentionPolicy.RUNTIME)
public @interface Factory {
Class<?> value();
}
ただし、これにより、次のエラーが表示されます。
クラスをタイプ FooFactory.java に解決できません
試してみる@Factory(Foo$FooFactory.class)
と、次のエラーが表示されます。
ネストされた Foo$FooFactory は、バイナリ名を使用して参照できません。
では、ネストされたクラスを参照することさえ可能ですか?