NetBeans IDE 中的标注处理程序支持 - 第一部分:使用 Project Lombok

此页上的内容适用于 NetBeans IDE 6.9、7.0 和 7.1

为了演示定制标注如何在 NetBeans IDE 内正常工作,我们将使用 Project Lombok,它提供了自动生成多个 Java 代码元素(如 getter、setter 以及构造函数等)的便捷方式。有关其功能的详细信息,请访问 Project Lombok 网站。但是,请记住,Project Lombok 包含一些可能无法在所有开发环境中正常工作的功能。

要学完本教程,您需要具备以下软件和资源。

软件或资源 要求的版本
NetBeans IDE 7.1, 7.2, 7.3
Java 开发工具包 (JDK) 版本 6

注:

  • NetBeans IDE 6.9 发行版中增加了对定制标注处理程序的支持。本教程不适用于早期版本的 IDE。

创建新的 Java 项目

在本练习中,将创建一个简单的 Java 项目,以及名为 MyBooks.java 的类,用于在操作中演示标注。

  1. 选择 "File"(文件)> "New Project"(新建项目),然后选择 "Java Application"(Java 应用程序)作为项目类型。
  2. 在新建项目向导的 "Name and Location"(名称和位置)页中,键入 TestAnn 作为项目名称。
  3. 在 "Create Main Class"(创建主类)字段中键入 testann.TestBooks,以替换默认的类名。单击 "Finish"(完成)。
    新建项目向导的屏幕快照

    单击 "Finish"(完成),此时 IDE 将创建 Java 应用程序项目,并在编辑器中打开 TestBooks.java 类。您可以看到,新项目现在显示在 "Projects"(项目)窗口中,并且 TestBooks.java 类位于 "Source Packages"(源包)节点下的 testann 包中。

  4. 在 "Projects"(项目)窗口中,右键单击 testann 包节点,然后选择 "New"(新建)> "Java Class"(Java 类)。
  5. 键入 MyBooks 作为类名,并确认将在 testann 包中创建类。单击 "Finish"(完成)。

    单击 "Finish"(完成)后,IDE 将在编辑器中打开新类。

  6. 在源代码编辑器中,将以下三个字段添加到 MyBooks.java 中。
    package testann;
    
    public class MyBooks {   
        private int year; //fields
        private String title;
        private String author;
    
    }
  7. 将插入光标放在类声明中,然后按 Ctrl-空格组合键,以调用编辑器的代码完成支持。
  8. 在代码完成列表中选择 MyBooks (int year, String title, String author) - generate(MyBooks (int year, String title, String author) - 生成),以生成 MyBooks.java 的构造函数。
    编辑器中代码完成的屏幕快照
  9. 保存所做的更改。

为项目启用定制标注 (lombok.jar)

在本练习中,将修改项目的 "Properties"(属性)窗口,以便将库添加到项目的类路径中,并在编辑器中启用标注处理功能。

  1. 下载 lombok.jar 文件并将其保存在系统上。
  2. 右键单击 TestAnn 项目节点,然后选择 "Properties"(属性)。
  3. 在 "Project Properties"(项目属性)对话框中,选择 "Libraries"(库)类别。
  4. 单击 "Compile"(编译)标签中的 "Add JAR/Folder"(添加 JAR/文件夹),找到您已下载的 lombok.jar 文件。

    在 "Compile"(编译)标签上添加的资源对应于 Java 编译器-classpath 选项。鉴于 lombok.jar 是一个同时包含标注定义和标注处理程序的单一 JAR 文件,您应该在 "Compile"(编译)标签中将其添加到项目的类路径中。

  5. 在 "Project Properties"(项目属性)窗口中,选择 "Compiling"(编译)类别。
  6. 确认选中了 "Enable Annotation Processing"(启用标注处理)复选框(默认为启用),然后选择 "Enable Annotation Processing in Editor"(在编辑器中启用标注处理)复选框。

    "Enable Annotation Processing"(启用标注处理)复选框使构建和编译项目期间可以进行标注处理。如果未选中该复选框,则会将 -proc:none 选项传递给 Java 编译器,因此,编译时不进行任何标注处理。因此,如果要处理代码中的标注,则必须选中 "Enable Annotation Processing"(启用标注处理)复选框。

    通过选中 "Enable Annotation Processing in Editor"(在编辑器中启用标注处理)复选框,可在编辑器中查看标注处理结果。标注处理程序生成的其他任何工件(类、方法、字段等)均会显示在 IDE 编辑器中,并且可用于代码完成、导航器、跳转类型、查找使用实例等。

  7. 在 "Project Properties"(项目属性)窗口单击 "OK"(确定),返回到 MyBooks.java 文件。

如果在 "Projects"(项目)窗口中展开 "Libraries"(库)节点,则可以看到 lombok.jar 现在被列为项目库。

编写使用 Lombok 定制标注的应用程序

  1. MyBooks.java 文件的 MyBooks 类声明前键入 @Data@Data 是一个为以下 Java 类生成样板代码的标注:所有字段的 getter、非最终字段的 setter 以及与调用该类字段相应的 toStringequalshashCode 实现。

    要了解有关 Project Lombok 支持的标注的详细信息,请参见 Lombok 的功能概述

  2. 单击编辑器左旁注中的提示,然后为 lombok.Data 添加 import。
    编辑器中提示的屏幕快照

    编辑器中的生成代码应该类似于下面的示例。

    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;
        }
    }

    注:已生成所需的代码工件(如 getter、setter、toString 等),并且可以在 "Navigator"(导航器)窗口中看到它们。@Data 标注生成了典型类所需的所有样板代码。

    还可以调用代码完成窗口(Ctrl-空格键),然后查看生成的工件是否可供选择。现在,我们看到项目已编译,生成的工件可以通过程序的其他部分调用。

  3. 打开包含 main 方法的 TestBooks.java 文件,并创建 MyBooks 类的新对象。
    package testann;
    
    public class TestBooks {
    
        public static void main(String[] args) {
    
            MyBooks books = new MyBooks(2009, "My Beautiful Dream", "John Smith");
        }
    }
  4. 添加以下代码,以输出 books 变量的值。

    要返回值,我们调用 lombok.jar 自动生成的 getter 方法。键入时,请注意代码完成窗口是否提供了自动生成的工件。

    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());
        }
    }
  5. 保存所做的更改。
  6. 在 "Projects"(项目)窗口中,右键单击项目节点,然后选择 "Run"(运行)(F6 键)。

    运行应用程序时,应会显示以下输出,说明应用程序编译成功。

您可以看到,Lombok 标注处理程序生成的工件可以从程序的其他部分访问。

后续步骤

get support for the NetBeans

Support


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2013, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo