可以使用类型化类参数的 java 注释吗?
2022-09-03 17:57:41
假设我有这个接口:
public interface MyInterface {
void doStuff();
}
具体实现:
public class HardCoreConcrete implements MyInterface {
void doStuff() {
// i really do stuff, honest
}
}
假设我有这个注释:
@Target(ElementType.class)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
Class<MyInterface> clazz;
}
它将像这样使用:
@MyAnnotation(clazz = HardCoreConcrete.class)
public class SomeOtherClass {
...
}
为什么这不起作用?我的编译器抱怨说,对于clazz,它期望类型MyInterface!但是HardCoreConcrete实现了MyInterface。
我做错了什么吗?这是不允许的吗?我运气不好吗?