Annotation (java)

recurso da Plataforma Java, introduzido como padrão de linguagem na versão 1.5

Annotation (representado pela inicial @), é um recurso da Plataforma Java, introduzido como padrão de linguagem na versão 1.5. (biblioteca java.lang.annotation*;).[1]

Descrição editar

Fornece a opção do uso de metadata ao longo do código que podem ser posteriormente interpretadas por um compilador ou pré compilador que irá realizar alguma tarefa pré definida.

O Annotation evita em muitos casos a criação de arquivos XML de configuração, que tornam tão difícil a compreensão de alguns sistemas. Além de ajudar na automatização de algumas tarefas, tais como a criação das interfaces do EJB e a criação das configurações dos WebServices.

Anterior a ele, esta funcionalidade não era nativa na plataforma, e uma função parecida a essa só era possível com o uso de uma API externa, o Xdoclet.

Algumas anotações editar

Existem atualmente mais de 60 anotações;

  • @Entity - Declara uma entidade do tipo relacional, como uma tabela, porém é uma classe java.
  • @Id - Define o identificador da tabela
  • @SequenceGenerator - Forma de auto incremento de determinado campo

Exemplo editar

  // @Twizzle é uma anotação do método ''toggle()''.
  @Twizzle
  public void toggle() {
  }

  // Declaração da anotação Twizzle.
  public @interface Twizzle {
  }

Anotações também podem incluir parametros e chaves:

  // Usado também: @Edible(value = true)
  @Edible(true)
  Item item = new Carrot();

  public @interface Edible {
    boolean value() default false;
  }

  @Author(first = "Oompah", last = "Loompah")
  Book book = new Book();

  public @interface Author {
    String first();
    String last();
  }

Associação editar

A relação de cardinalidade para as entidades é feita da forma tradicional, ou seja;

  • @OneToMany - 1 para muitos
  • @ManyToOne - Muitos para 1
  • @OneToOne - 1 para 1
  • @ManyToMany - Muitos para muitos

Referências

  1. Coward, Danny (2 de novembro de 2006). «JSR 175: A Metadata Facility for the JavaTM Programming Language» (em inglês). Java Community Process. Consultado em 5 de março de 2008