用内部类注释类

Kon*_*che 6 java reflection annotations

我通过反射创建我的枚举,因为我为每个枚举添加了一个实现抽象工厂的内部类.现在我想访问这个内部类以调用该方法:

@Factory(FooFactory.class)
public enum Foo {

     FOO, BAR;

     public class FooFactory implements AbstractFactory<Foo> {

          public Foo create(String value) {
               return valueOf(value.toUpperCase());
          }
     }
}
Run Code Online (Sandbox Code Playgroud)

定义@Factory是:

@Retention(RetentionPolicy.RUNTIME)
public @interface Factory {

        Class<?> value();
}
Run Code Online (Sandbox Code Playgroud)

但是,有了这个,我收到以下错误:

无法将类解析为类型FooFactory.java

当我尝试时@Factory(Foo$FooFactory.class)收到错误:

无法使用其二进制名称引用嵌套的Foo $ FooFactory.

那么甚至可以引用嵌套类吗?

Cha*_*lie 9

从评论......显然

@Factory(Foo.FooFactory.class)
Run Code Online (Sandbox Code Playgroud)

需要.