考慮以下代碼:爲什麼不允許接口作爲註釋成員?
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Bar {
Foo foo() default FooImpl.FooConstant;
}
編譯器錯誤:
annotation value not of an allowable type
如果我用FooImpl
替換Foo
,則接受代碼。
這種行爲的原因是什麼?
我完成了第一句話,第二個似乎是問題。我想知道爲什麼這是不允許的註釋... – soc
@soc *我履行了第一句話*不,你沒有。 '類<?擴展Foo> fooType()'是有效的,'Foo foo()'不是。 –
認爲Foo Foo()是一種方法(只是爲了簡單起見)......我們能否提到接口作爲方法的返回類型? :) – Nik