Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

O método value() de toda annotation é por padrão público e abstrato?

Ao usar a annotation NomeTagXml sem criar a ela o método value(), notei que o Eclipse exibe um quick fix indicando para criar o atributo value na annotation em questão.

Ao criar esse atributo usando o quick fix do Eclipse notei que o método foi criado com a seguinte assinatura:

String value();

Assim como nas interfaces, esse método é então por padrão público e abstrato?

3 respostas
solução!

Boa tarde, Carlos! Como vai?

Na realidade, o String value() não é chamado de método e sim de elemento da anotação, como pode ser visto nessa página da documentação da Oracle.

The annotation can include elements, which can be
 named or unnamed, and there are values for those 
elements:

@Author(
   name = "Benjamin Franklin",
   date = "3/27/2003"
)
class MyClass() { ... }
or

@SuppressWarnings(value = "unchecked")
void myMethod() { ... }

If there is just one element named value, then the
name can be omitted, as in:

@SuppressWarnings("unchecked")
void myMethod() { ... }

If the annotation has no elements, then the 
parentheses can be omitted, as shown in the 
previous @Override example.

Já diretamente sobre a sua pergunta, os elementos das anotações são por padrão públicos e abstratos. Inclusive, uma coisa interessante e que demonstra que os elementos não são métodos é que eles podem ter valores padrão como é visto aqui.

@interface ClassPreamble {
   String author();
   String date();
   int currentRevision() default 1;
   String lastModified() default "N/A";
   String lastModifiedBy() default "N/A";
   // Note use of array
   String[] reviewers();
}

Pegou a ideia? Qualquer coisa é só falar!

E o curso, o que está achando? Espero que esteja curtindo e aproveitando ao máximo o conteúdo!

Grande abraço e bons estudos, meu aluno!

Perfeitamente entendido Gabriel!

Quanto ao curso, estou curtindo e aprendendo muito! Sempre tive muita curiosidade sobre Reflection e ela sempre foi mistério pra mim, mas agora está muito mais claro, graças a luz que você está trazendo hahaha :P

Muito obrigado!

Que bom que está curtindo! Aproveito para convidá-lo a sempre que tiver qualquer dúvida mandar aqui no fórum! Daí eu apareço para levá-lo para a luz do conhecimento!

Grande abraço e bons estudos, meu aluno!