consideran este código:¿Por qué las interfaces no están permitidas como miembros de anotación?
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Bar {
Foo foo() default FooImpl.FooConstant;
}
de error del compilador:
annotation value not of an allowable type
Si sustituyo Foo
con FooImpl
el código es aceptado.
¿Cuál es la razón de este comportamiento?
tipos de miembro
que se cumpliese la primera frase, la segunda parece ser el problema. Me pregunto por qué esto no está permitido en las anotaciones ... – soc
@soc * Cumplo la primera oración * No, no. 'Clase extiende Foo> fooType() 'sería válido,' Foo foo() 'no lo es. –
considere Foo Foo() como un método (solo por el bien de la simplicidad) ... ¿podemos mencionar la interfaz como tipo de retorno para un método? :) – Nik