当前位置: 首页 > 面试题库 >

Java 9中的新关键字

龙嘉誉
2023-03-14
问题内容

Java 9最大的功能之一是Project Jigsaw定义的模块系统。当从JavaOne 2015 的Project Jigsaw:The
Hood
中读取幻灯片时,我注意到以下源代码:

// src/java.sql/module-info.java
module java.sql {
   exports java.sql;
   exports javax.sql;
   exports javax.transaction.xa;
}

对我而言,有趣的是文件结尾,.java并且似乎使用了两个新关键字:moduleexports。Java
9将引入哪些其他关键字?向后兼容性(即名为的函数或变量module)将如何处理?


问题答案:

Java SE 9 Edition Java语言规范的第3.9节总结了在Java 9中为模块声明添加的关键字:

进一步的十个字符的序列是受限制的关键字:open
modulerequirestransitiveexportsopenstouses
provides,和with。这些字符序列仅在ModuleDeclarathtml" target="_blank">ion和ModuleDirective生成(第7.7节)中作为终端出现时才被标记为关键字。为了与Java
SE
9之前编写的程序兼容,它们在其他任何地方都被标记为标识符。有一个例外:在ModuleDirective生产中,字符序列的右边紧随其后的要求是,可传递的字符序列被标记为关键字,除非它是然后是分隔符,在这种情况下,它被标记为标识符。

如果您当前有一个名为的方法module,或此处列出的任何其他关键字,它将继续编译。

view并且permits是早期Jigsaw原型中的关键字,但很早以前就已经简化了它们的存在。)



 类似资料:
  • 本文向大家介绍Java9中下划线关键字的用法,包括了Java9中下划线关键字的用法的使用技巧和注意事项,需要的朋友参考一下 在Java的早期版本中,下划线 (_)用作标识符或创建变量名。从Java 9开始,下划线字符是保留关键字,不能用作标识符或变量名。如果我们使用单个下划线字符作为标识符,则该程序将无法编译并抛出编译时错误,因为它现在是关键字,在Java 9或更高版本中不能用作变量名。 示例 输

  • 问题内容: 在Spring Framework中,似乎bean是创建用于业务逻辑的对象的首选方式。 [依赖关系注入]是一个过程,通过该过程,对象只能通过构造函数参数,工厂方法的参数或在对象实例构造或从对象实例返回后设置的属性来定义其依赖关系,即与它们一起使用的其他对象一种工厂方法。然后,容器在创建bean时注入那些依赖项。此过程从根本上讲是与之相反的,因此名称为Inversion of Contr

  • 我有一个使用Java Version8的Spring和Maven的项目。当我运行maven update时,它适用于Java9或更高版本,当我编译它时,它适用于Java8。我注意到了这一点,因为用Maven更新会将一个特定的类更改为Java9,而我无法导入这个类。 这个类是:javax.annotation.generated(Java8)。 这是要导入的类。但是,当我进行maven更新时,文件的

  • 问题内容: Java 13引入了 用于表达式的关键字。 如何使用它,与默认值或值有什么区别? 问题答案: 问答环节 如何使用? 需要完整块时,带有箭头标签: }; 使用传统积木: }; 默认收益有什么区别? 一条语句将控制权返回给 方法 (第8.4节,第§15.12节)或 构造函数 (第8.8节和第15.9节) 的调用者, 而一条语句则通过 使一个封闭的表达式产生一个指定值来转移控制权。 突破值有

  • 我最近更新了Android studio到3.0版本。现在,在中,所有依赖项都是使用关键字而不是旧的关键字添加的。 但是关键字仍然有效。和有什么区别?

  • 问题内容: 我知道编程的含义以及何时使用它。Java中有关键字吗?我试图找到一个关键字列表,但只有而没有。 问题答案: foreach不是Java关键字(IDE可以识别它并将“ For- each ”循环放入)。