考虑以下代码:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Bar {
Foo foo() default FooImpl.FooConstant;
}
编译器错误:
如果我将
Foo
替换为FooImpl
,则接受该代码。这种行为的原因是什么?
最佳答案
如果将其编译,除非FooImpl是枚举,否则我会感到非常惊讶。
注释成员只能包含以下内容:
资料来源:JLS