NetBeans IDE 中的 JDK 8 支持概述

NetBeans IDE 支持 JDK 8 功能,例如 lambda 表达式、可重复标注、精简配置文件等。在代码中使用这些结构时,IDE 会识别它们,正确突出显示错误并使您能够自动修复语法。因此,NetBeans IDE 可帮助您编写与 Java SE 8 发布内容早期草稿审查规范兼容的代码。

在本教程中,您将了解如何在 NetBeans IDE 中开始使用 JDK 8,以及如何使用 IDE 对精简配置文件、lambda 表达式和重复标注等 Java SE 8 功能的支持。

目录

此页上的内容适用于 NetBeans IDE 7.4 和 8.0 Beta

要学完本教程,您需要具备下表所列的软件和资源。

软件或资源 要求的版本
NetBeans IDE 版本 7.4 和 8.0
Java 开发工具包 (JDK) 版本 8

在 NetBeans IDE 中启用 JDK 8 支持

在系统上下载并安装 JDK 8 之后,需要将其注册在 IDE 中,如下所示:

  1. 在 IDE 中,从主菜单中选择 "Tools"(工具)> "Java Platforms"(Java 平台)。
  2. 在 "Java Platform Manager"(Java 平台管理器)对话框中单击 "Add Platform"(添加平台)。
  3. 在 "Add Java Platform"(添加 Java 平台)对话框中,选择 "Java Standard Edition",然后单击 "Next"(下一步)。
  4. 指定包含 JDK 的目录,然后单击 "Next"(下一步)。

    选中 JDK 8

  5. 验证平台源 zip 文件和 API 文档的默认位置是否有效。单击 "Finish"(完成)以关闭 "Add Java Platform"(添加 Java 平台)对话框。
    JDK 8 作为平台注册在 IDE 中。

    注册的 Java 平台

  6. 确保在 "Platforms"(平台)列表中选择了 JDK 1.8,然后单击 "Close"(关闭)。

配置项目以使用 JDK 8

在 IDE 中注册 JDK 8 之后,需要将项目配置为使用 JDK 8 进行编译、运行和调试。

首先,我们将使用 NetBeans IDE 附带的 Anagram Game 示例创建一个新的 Java SE 项目。

  1. 在 IDE 中,选择 "File"(文件)> "New Project"(新建项目)。
  2. 在 "New Project"(新建项目)向导中,展开 "Samples"(样例)类别并选择 "Java"。
  3. 在 "Projects"(项目)列表中选择 "Anagram Game"。然后,单击 "Next"(下一步)。
  4. 在 "Name and Location"(名称和位置)面板中,保留 "Project Name"(项目名称)和 "Project Location"(项目位置)字段的默认值。
  5. 单击 "Finish"(完成)。
    IDE 将在 "Projects"(项目)窗口中创建并打开 Java SE 项目。

要配置项目以使用 JDK 8,请执行以下操作:

  1. 在 "Projects"(项目)窗口中右键单击 "AnagramGame" 项目,然后从上下文菜单中选择 "Properties"(属性)。
  2. 在 "Project Properties"(项目属性)对话框中,选择 "Libraries"(库)类别,然后将 JDK 1.8 设置为 Java 平台。

    JDK 8 设置为 Java 平台

  3. 选择 "Sources"(源)类别,然后将源代码/二进制格式设置为 "JDK 8"。

    将源代码/二进制格式设置为 JDK 8

  4. 单击“确定”保存更改。
    此时将设置项目以识别新的 JDK 8 语言功能。

使用精简配置文件支持

Java SE 8 引入了可用于部署和运行不需要整个平台的应用程序的 Java SE 平台规范的子集配置文件

到目前为止已定义的三个配置文件名为 compact1compact2compact3。每个配置文件都指定一组特定的 Java API 包并且包含小于自身的配置文件中的所有 API:compact1compact2 的子集,后者是 compact3 的子集,而再后者又是完整 JRE 的子集。下表列出了每个配置文件中包含的包。

Compact1 Compact2 Compact3 完整 JRE
  • java.lang
  • java.io
  • java.nio
  • java.text
  • java.math
  • java.net
  • javax.net
  • java.util
  • java.util.logging
  • java.security
  • javax.crypto
  • javax.security
compact1 以及以下包:
  • java.sql
  • javax.sql
  • javax.xml
  • org.w3c.dom
  • org.xml.sax
  • java.rmi
  • javax.rmi
  • javax.transaction
compact2 以及以下包:
  • java.lang.management
  • javax.management
  • javax.naming
  • javax.sql.rowset
  • javax.security.auth.kerberos
  • org.ietf.jgss
  • javax.script
  • javax.xml.crypto
  • java.util.prefs
  • javax.security.sasl
  • javax.security.acl
  • java.lang.instrument
  • javax.annotation.processing
  • javax.lang.model
  • javax.lang.model.element
  • javax.lang.model.type
  • javax.lang.model.util
  • javax.tools
compact3 以及以下包:
  • corba
  • awt
  • swing

IDE 允许您根据需要在配置文件和完整 JRE 之间切换。

要为 Java SE 项目设置项目配置文件,请执行以下操作:

  1. 右键单击项目,然后从上下文菜单中选择 "Properties"(属性)。
  2. 在 "Project Properties"(项目属性)对话框中,选择 "Sources"(源)类别。
  3. 使用 "Profile"(配置文件)下拉列表指定您的应用程序将支持的 JDK 8 配置文件。

    配置文件列表

  4. 单击 "OK"(确定)。

要了解 IDE 如何检查项目中使用的类是否属于指定的配置文件,请选择 "Compact1" 作为 AnagramGame 项目的配置文件,然后单击 "OK"(确定)。
IDE 将显示错误,以通知 AnagramGame 项目不符合 compact1 配置文件。

配置文件

您可以返回并将 AnagramGame 项目的配置文件设置为 Anagrams 应用程序支持的“完整 JRE”。

使用 Lambda 表达式支持

Lambda 表达式通过更加简洁地表示匿名内部类的结构,解决庞大的匿名内部类问题。

lambda 表达式的一般语法包含一组参数、一个箭头标记和一个函数体(单个表达式或一个语句块):

(int a, int b) -> a * a + b * b;

NetBeans IDE 将检测预 lambda 表达式并在编辑器中显示提示,以建议将此类结构转变为 lambda 表达式。

例如,AnagramGame 项目以 Anagrams.java 文件中的预 lambda 结构为特色,如下面的屏幕快照中所示。

已单击 Lambda

在单击旁注中的电灯泡或按 Alt-Enter 组合键之后,IDE 将显示 "Use Lambda"(使用 Lambda)提示并提供一组选项:

已单击 Lambda

如果选择了 "Use Lambda"(使用 Lambda)提示,则 IDE 会将匿名内部类转换为 lambda 表达式。

已转换 Lambda

如果选择 "Run Inspect on"(运行检查于)选项,则 IDE 将显示 "Inspect"(检查)对话框,您可以在该对话框中对指定的文件运行单个 "Convert to Lambda"(转换为 Lambda)检查。

注:有关在 IDE 中启动 "Inspect"(检查)操作的更多信息,请参见使用 NetBeans IDE 开发应用程序中的在源代码分析和重构中使用提示

运行检查

在您按 "Inspect"(检查)按钮启动检查之后,IDE 将标识文件中的所有预 lambda 结构并将其显示在 "Inspector"(检查器)窗口中。

Lambda 检查

如果选择 "Run Inspect&Transform on"(运行检查和转换于)选项,则 IDE 将显示 "Inspect and Transform"(检查并转换)对话框,您可以在该对话框中对指定的代码运行单个 "Convert to Lambda"(转换为 Lambda)检查(或所选配置),并根据需要重构。

注:有关启动 "Inspect and Transform"(检查并转换)操作的更多信息,请参见使用 NetBeans IDE 开发应用程序中的在源代码分析和重构中使用提示

Lambda 重构

使用重复标注支持

Java SE 8 功能包含重复标注,通过该功能,可以将相同类型的标注应用到单个程序元素,如以下代码示例中所示:

@ProjectServiceProvider(service=Foo.class,"org-nebeans-modules-j2seproject")
@ProjectServiceProvider(service=Foo.class,"org-nebeans-modules-j2eeproject")
public class MyService extends Foo {}
 

NetBeans IDE 支持重复标注,允许您使用相同的标注编写代码,假定声明了重复标注类型和包含标注类型:

  • 必须使用 @Repeatable () 标记可重复的标注类型,否则您在编译时会获得错误
  • 包含标注类型必须具有一个数组类型的 value 元素;该数组类型的组件类型必须是可重复的标注类型

另请参见

有关 JDK 8 的更多信息,请参见:

有关在 NetBeans IDE 中开发 Java 应用程序的详细信息,请参见:

get support for the NetBeans

Support


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