一尘不染

Java 9中的新关键字

java

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)将如何处理?


阅读 402

收藏
2020-12-03

共1个答案

一尘不染

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

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

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

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

2020-12-03