Não consigo utilizar uma classe minha como um tipo em um atributo de anotação @interface. Mas por que então eu consigo utilizar o tipo String
sendo que ele não é primitivo?
public @interface Annotation { MyClass atribute() default null; }
Não consigo utilizar uma classe minha como um tipo em um atributo de anotação @interface. Mas por que então eu consigo utilizar o tipo String
sendo que ele não é primitivo?
public @interface Annotation { MyClass atribute() default null; }
Olá @Renan_da_Hikkit
Você pode fazer assim:
public @interface Annotation{
Class<? extends MyClass> atribute() default MyClass.class;
}
Por padrão o Java não permite outra classe a não ser String e Class, como diz o erro:
Invalid type MyClass for the annotation attribute Annotation.atribute; only primitive type, String, Class, annotation, enumeration are permitted or 1-dimensional arrays thereof
Só pode tipos primitivos, Classe Class ou String, Annotation, Enum ou Array (vetor).