| // |
| // Licensed to the Apache Software Foundation (ASF) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The ASF licenses this file |
| // to you under the Apache License, Version 2.0 (the |
| // "License"); you may not use this file except in compliance |
| // with the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, |
| // software distributed under the License is distributed on an |
| // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| // KIND, either express or implied. See the License for the |
| // specific language governing permissions and limitations |
| // under the License. |
| // |
| |
| = Suporte aos Processadores de Anotação no NetBeans IDE, Parte I: Utilizando o Projeto Lombok |
| :jbake-type: tutorial |
| :jbake-tags: tutorials |
| :jbake-status: published |
| :icons: font |
| :syntax: true |
| :source-highlighter: pygments |
| :toc: left |
| :toc-title: |
| :description: Suporte aos Processadores de Anotação no NetBeans IDE, Parte I: Utilizando o Projeto Lombok - Apache NetBeans |
| :keywords: Apache NetBeans, Tutorials, Suporte aos Processadores de Anotação no NetBeans IDE, Parte I: Utilizando o Projeto Lombok |
| |
| image::images/netbeans-stamp-80-74-73.png[title="O conteúdo desta página se aplica ao NetBeans IDE 7.2, 7.3, 7.4 e 8.0"] |
| |
| |
| * *Utilizando Projeto Lombok para Anotações Personalizadas* |
| |
| Para demonstrar como as anotações personalizadas funcionam dentro do NetBeans IDE, vamos usar o Projeto Lombok, que fornece uma forma conveniente de gerar automaticamente diversos elementos de código Java, tais como getters, setters, construtores e outros. Para maiores informações sobre suas funcionalidades, visite o link:http://projectlombok.org/[+site do projeto Lombok+]. Entretanto, tenha em mente que o Projeto Lombok inclui algumas funcionalidades que podem não funcionar em todos os ambientes de desenvolvimento. |
| |
| *Para concluir este tutorial, você precisa dos seguintes recursos e softwares.* |
| |
| |=== |
| |Software ou Recurso |Versão Necessária |
| |
| |link:https://netbeans.org/downloads/index.html[+NetBeans IDE+] |7.2, 7.3, 7.4, 8.0 |
| |
| |link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+JDK (Java Development Kit)+] |versão 7 ou 8 |
| |
| |link:http://code.google.com/p/projectlombok/downloads/list[+lombok.jar+] |v1.12.4 ou mais recente |
| |=== |
| |
| |
| == Criando um Novo projeto Java |
| |
| Neste exercício, você cria um projeto Java simples e uma classe chamada ``MyBooks.java`` que demonstrará as anotações em ação. |
| |
| 1. Escolha *Arquivo > Novo Projeto* no menu principal para abrir o assistente de Novo Projeto. |
| 2. Selecione o tipo de projeto Aplicação Java na categoria Java. Clique em Próximo. |
| 3. Na página Nome e Localização do assistente, digite * ``TestAnn`` * como nome do projeto. |
| 4. Digite * ``testann.TestBooks`` * no campo Criar Classe Principal para substituir o nome default da classe. Clique em Finalizar. |
| image::images/newproj.png[title="Criando um novo projeto Java no NetBeans IDE"] |
| |
| Quando você clica em Finalizar, o IDE cria a aplicação Java e abre a classe ``TestBooks.java`` no editor. Você pode ver que o novo projeto está agora visível na janela Projetos e que a classe ``TestBooks.java`` está no pacote ``testann`` sob o nó Pacotes de Código-fonte. |
| |
| |
| |
| . Clique com o botão direito do mouse no nó do pacote ``testann`` na janela Projetos e escolha Novo > Classe Java. |
| |
| |
| . Digite * ``MyBooks`` * para o Nome da Classe e confirme que a classe será criada no pacote ``testann`` . Clique em Finalizar. |
| |
| Quando você clicar em Finalizar, o IDE abre a nova classe no editor. |
| |
| |
| |
| . No editor de código-fonte, adicione os seguintes três campos em ``MyBooks.java`` . |
| |
| [source,java] |
| ---- |
| |
| package testann; |
| |
| public class MyBooks { |
| *private int year; //fields |
| private String title; |
| private String author;* |
| |
| } |
| ---- |
| |
| |
| . Coloque o ponteiro do mouse na declaração da classe e pressione Ctrl-Espaço para chamar o suporte de autocompletar código do editor. |
| |
| |
| . Selecione ``MyBooks (int year, String title, String author) - generate`` na lista autocompletar código para gerar um construtor para ``MyBooks.java`` . |
| image::images/generate-constructor.png[title="Recurso autocompletar código para gerar o construtor"] |
| |
| |
| . Salve as alterações. |
| |
| |
| == Ativando Anotações Personalizadas (lombok.jar) para o Projeto |
| |
| Neste exercício, você irá modificar a janela de propriedades do projeto para adicionar uma biblioteca à classpath do projeto e ativar o processamento de anotações no editor. |
| |
| 1. Faça download do arquivo link:http://code.google.com/p/projectlombok/downloads/list[+lombok.jar+] e salve no sistema. |
| 2. Clique com o botão direito no nó do projeto ``TestAnn`` e escolha Propriedades. |
| 3. Selecione a categoria Bibliotecas na caixa de diálogo Propriedades do Projeto. |
| 4. Clique em Adicionar JAR/Pasta na guia Compilar e localize o arquivo ``lombok.jar`` submetido a download. |
| image::images/properties1.png[title="Categoria das bibliotecas na janela Propriedades"] |
| |
| Os recursos adicionados à guia Compilar correspondem à opção ``-classpath`` do link:http://download.oracle.com/javase/6/docs/technotes/tools/windows/javac.html#options[+compilador Java+]. Como ``lombok.jar`` é um arquivo JAR único que contém definições de anotação e processadores de anotações, é recomendado adicioná-lo ao classpath do projeto, que é a guia Compilação. |
| |
| |
| |
| . Escolha a categoria Compilação na janela Propriedades do Projeto. |
| |
| |
| . Confirme se a caixa de seleção Ativar o Processamento de Anotações está selecionada (ela é ativada por default) e selecione a caixa de seleção Ativar o Processamento de Anotações no Editor. |
| image::images/properties2.png[title="Categoria de compilação na janela Propriedades"] |
| |
| A caixa de seleção Ativar Processamento de Anotações ativa o processamento de anotação ao construir e compilar o projeto. Se a caixa de seleção não estiver selecionada, a opção ``-proc:none`` é passada para o compilador Java e a compilação ocorre sem qualquer processamento de anotações. Então, se deseja processar anotações no código, a caixa de seleção Ativar Processamento de Anotações deve estar selecionada. |
| |
| Ao selecionar a caixa de seleção, Ativar Processamento de Anotações no Editor, você faz com que o processamento de anotações fique visível no editor. Quaisquer artefatos adicionais que forem gerados por processadores de anotações (classes, métodos, campos, etc.) ficam visíveis no editor IDE e disponíveis para a conclusão de código, no Navegador, Ir para Tipo, Localizar usos e outros. |
| |
| |
| |
| . Clique em OK na janela Propriedades do Projeto e retorne para o arquivo ``MyBooks.java`` . |
| |
| Caso você expanda o nó Bibliotecas na janela Projetos, verá que a ``lombok.jar`` está agora listada como uma biblioteca do projeto. |
| |
| image::images/projects-window.png[title="Nó das bibliotecas na janela Projetos"] |
| |
| |
| == Escrevendo uma Aplicação com a Utilização de Anotações Personalizadas Lombok |
| |
| 1. No arquivo ``MyBooks.java`` , digite ``@Data`` antes da declaração de classe ``MyBooks`` . ``@Data`` é uma anotação que gera o código padronizado para classes Java: getters para todos os campos, setters para todos os campos não-finais e o ``toString`` apropriado, ``equals`` e implementações ``hashCode`` que envolvem os campos da classe. |
| |
| Para aprender mais sobre quais anotações são suportadas pelo Projeto Lombok, consulte a link:http://projectlombok.org/features/index.html[+Visão Geral das Funcionalidades+] do Lombok. |
| |
| |
| |
| . Clique na dica na margem direita do editor e adicione importar para ``lombok.Data`` . |
| image::images/import-lombok.png[title="Dica no editor para importar lombok"] |
| |
| O código resultante no Editor deve ser parecido com o exemplo abaixo. |
| |
| |
| [source,java] |
| ---- |
| |
| package testann; |
| |
| import lombok.Data; |
| |
| |
| @Data |
| public class MyBooks { |
| |
| private int year; //fields |
| private String title; |
| private String author; |
| |
| public MyBooks(int year, String title, String author) { |
| this.year = year; |
| this.title = title; |
| this.author = author; |
| } |
| } |
| ---- |
| |
| Observe que artefatos de código necessários, como getters, setters, toString, etc., têm sido gerados e é possível visualizá-los na janela do Navegador. A anotação ``@Data`` gera todos os códigos padronizados que são necessários para uma classe típica. |
| |
| image::images/nav.png[title="Janela do Navegador mostrando os membros do projeto"] |
| |
| É possível também chamar a janela autocompletar código (Ctrl-Espaço) e ver que os artefatos gerados estão disponíveis para pegá-los. Agora, veremos que o projeto compila e os artefatos gerados podem ser chamados de outras partes do programa. |
| |
| |
| |
| . Abra o arquivo ``TestBooks.java`` com o método _main_ e adicione o código a seguir (em negrito) para criar um novo objeto da classe ``MyBooks`` . |
| |
| [source,java] |
| ---- |
| |
| package testann; |
| |
| public class TestBooks { |
| |
| public static void main(String[] args) { |
| *MyBooks books = new MyBooks(2009, "My Beautiful Dream", "John Smith");* |
| } |
| } |
| ---- |
| |
| |
| . Adicione o seguinte código para imprimir os valores da variável ``books`` . |
| |
| Para voltar os valores, chamamos os métodos getter que são autogerados por ``lombok.jar`` . Enquanto estiver digitando, observe que os artefatos autogerados estão disponíveis da janela autocompletar código. |
| |
| |
| [source,java] |
| ---- |
| |
| package testann; |
| |
| public class TestBooks { |
| |
| public static void main(String[] args) { |
| MyBooks books = new MyBooks(2009, "My Beautiful Dream", "John Smith"); |
| *System.out.println("Year: " + books.getYear() + ", Title: " + books.getTitle() + ", Author: " + books.getAuthor());* |
| } |
| } |
| ---- |
| |
| |
| . Salve as alterações. |
| |
| |
| . Clique com o botão direito do mouse no nó na janela Projetos e selecione Executar (F6). |
| |
| Ao executar a aplicação, você deverá ver a seguinte saída que mostra que a aplicação foi compilada com êxito. |
| |
| image::images/output.png[title="Janela de saída após a execução da aplicação"] |
| |
| Você pode ver que os artefatos gerados pelo processador de anotação Lombok estão acessíveis de outras partes do programa. |
| |
| |
| == Próxima Etapa |
| |
| * Documentação Java SE - link:http://download.oracle.com/javase/6/docs/technotes/guides/language/annotations.html[+Anotações+] |
| * Tutorial Java SE - link:http://download.oracle.com/javase/tutorial/java/javaOO/annotations.html[+Anotações+] |
| link:/about/contact_form.html?to=3&subject=Feedback:%20Using%20the%20Annotation%20Processors%20Support%20in%20NetBeans%20IDE[+Enviar Feedback neste Tutorial+] |