e 方法类似,这与多版本 jar 文件有关。
java.util.spi.LocaleNameProvider: getDisplayUnicodeExtensionKey(String, Locale): 为给定的 Unicode 扩展键返回一个本地化名称。 getDisplayUnicodeExtensionType(String, String, Locale): 为给定的 Unicode 扩展键返回一个本地化名称。
java.util.stream.Collectors: toUnmodifiableList(): toUnmodifiableSet(): toUnmodifiableMap(Function, Function): toUnmodifiableMap(Function, Function, BinaryOperator): 这四个新方法都返回 Collectors ,将输入元素聚集到适当的不可修改的集合中。
- java.lang.model.SourceVersion: 现在有了一个字段,它代表了 JDK 10 的版本。
- java.lang.model.util.TypeKindVisitor6:
javax.lang.model.util.TypeKindVisitor9: (我必须承认,我从来没听说过这些类) R visitNoTypeAsModule(NoType, P): 访问一个 MODULE 的 pseudo-type 。我不确定为什么只有这两个类得到这个方法,因为还有 Visitor7 和 Visitor8 变量。
- javax.remote.management.rmi.RMIConnectorServer:
这个类已经添加了两个字段: CREDENTIALS_FILTER_PATTERN 和 SERIAL_FILTER_PATTERN 。
- javax.ButtonModel:看,Swing 还在更新!
ButtonGroup getGroup(): 返回按钮所属的组。通常用于单选按钮,它们在组中是互斥的。
- javax.plaf.basic.BasicMenuUI:
Dimension getMinimumSize(JComponent): 返回指定组件适合观感的最小大小。
JVM 规范改动
这些改动相当小:
- 4.6节:类文件格式(第99页)。在方法访问标志方面有小的改动。
- 4.7节:模块属性(第169页)。如果模块不是 java.base ,则 JDK 10 不再允许设置 ACC_TRANSITIVE 或 ACC_STATIC_PHASE 。
- 4.10节:类文件的校验(第252页)。dup2 指令已改变了 typesafe form 1 的定义,颠倒了 canSafleyPushList 一节中类型的顺序(你需要仔细查看才能发现它)。
- 5.2节:Java 虚拟机启动(第350页)。该描述添加了在创建初始类或接口时可使用用户定义的类加载器( bootstrap 类加载器除外)。
对 Java 语言规范的更改
这里还有一些更改,但主要是为了支持局部变量类型推断。
- 第3.8节:标识符(第23页)。在忽略了可忽略的字符之后,标识符的等价性现在被考虑了。这似乎是合乎逻辑的。
(第24页)一个新的 Token,TypeIdentifier,它支持对局部变量类型推断的新用法,而 var 的使用不是关键字,而是一个具有特殊含义的标识符,作为局部变量声明的类型。
- 第4.10.5节:类型预测(第76页)。这是一个相当复杂的部分,它涉及到捕获变量、嵌套类以及如何使用局部变量类型推断。我建议你阅读规范中的这一部分,而不是试图解释它。
- 第6.1节:声明(第134页)。一个反映使用 TypeIdentifier 来支持局部变量类型的推断的小改动。
- 第6.5节:确定名字的含义(第153页,第158页和第159页)。根据类型标识符的使用而更改类类型。
- 第6.5.4.1:简单的 PackageOrTypeNames(第160页)
- 第6.5.4.2节:合规的 PackageOrTypeNames(第160页)。这两种方式都与使用 TypeIdentifier 有细微的变化。
- 第7.5.3:单静态导入声明(第191页)。这改变了导入具有相同名称的静态类型的规则。除非类型是相同的,否则这将成为一个错误,在这种情况下,重复被忽略。
- 第7.7.1:依赖(第198页)。如果你明确声明一个模块需要 java.base ,那在必要的关键字之后,你就不能再使用修饰符(例如静态)了。
- 第8部分:正式参数(第244页)。接收者参数可能只出现在一个实例方法的 formalparameters 列表,或者是一个内部类的构造函数中,其中内部类没有在静态上下文中声明。
- 第9.7.4节:注释可能出现的地方(第335页)。有一个与局部变量类型推断相关的变更。
- 第14.4部分:局部变量声明语句(第433页)。实现局部变量类型推断所需的大量更改。
- 第14节:增强的 for 语句(第455页)。这个结构已经更新,包括对局部变量类型推断的支持。
- 第14.20.3节:try-with-resources(474页)。这个结构已经更新,包括对局部变量类型推断的支持。
最后,第 19 章有多处语法更新,反映了应更多使用 TypeIdentifier 类型标识符,而不仅仅是 Identifier 标识符,以支持局部变量类型推断。
|