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
并且似乎使用了两个新关键字:module
和exports
。Java 9将引入哪些其他关键字?向后兼容性(即名为的函数或变量module
)将如何处理?
Java语言规范Java SE 9 Edition的 §3.9中总结了在Java 9中为模块声明添加的关键字:
进一步的十个字符的序列是受限制的关键字:
open
,module
,requires
,transitive
,exports
,opens
,to
,uses
,provides
,和with
。这些字符序列仅在ModuleDeclaration和ModuleDirective生成(第7.7节)中作为终端出现时才被标记为关键字。为了与Java SE 9之前编写的程序兼容,它们在其他任何地方都被标记为标识符。只有一个例外:在ModuleDirective生产中,字符序列右边要求的字符序列可传递性被标记为关键字,除非它是后面跟一个分隔符,在这种情况下,它被标记为标识符。
如果您当前有一个名为的方法module
,或此处列出的任何其他关键字,它将继续编译。
(view
并且permits
是早期Jigsaw原型中的关键字,但很早以前就简化了它们的存在。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句