Bu kodu göz önünde bulundurun:Arabirimler, açıklama notu olarak neden izinli değil?
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Bar {
Foo foo() default FooImpl.FooConstant;
}
Derleyici hatası:
annotation value not of an allowable type
Foo
yerine FooImpl
yazarsanız bu kod kabul edilir.
Bu davranışın sebebi nedir?
JLS Ben ilk cümle yerine, ikinci bir problem olarak görünüyor. Açıklamalara neden eklenmesine izin verilmediğini merak ediyorum ... – soc
@soc * İlk cümleyi yerine getiriyorum * Hayır sen yapmazsın. 'Sınıf Foo> fooType() 'ın geçerli olduğu anlamına gelir, Foo foo()' değil. –
, Foo Foo() yöntemini bir yöntem olarak düşünür (sadece basitlik uğruna) ... bir yöntem için dönüş türü olarak arayüzden bahsedebilir miyiz? :) – Nik