问题标签 [java-10]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1367 浏览

java - Java 10 中的“受限关键字”和“保留类型名称”之间的概念区别是什么?

Java 10 带有新的局部变量类型推断。令牌var可用于减少声明变量时所需的样板文件。例如

根据Java 10 中的“var”到底是什么类型的令牌?这个新标记不是“关键字”,而是“保留类型名称”。因此,“var”一词仍然可以用作变量名,以保持与现有代码的向后兼容性。

当 Java 9 中引入“模块”特性时,这个新标记的类型(连同它的 9 个其他相关标记)被称为“受限关键字”。也就是说,它们仅在某些特定上下文限制下才被视为关键字。例如,您仍然可以拥有称为模块的变量。

当新的语言特性以不破坏现有用户定义符号的方式添加到 C++ 时,它们被称为“上下文敏感关键字”。

varJava 10 中新的“保留类型名称”标记与“上下文敏感关键字”或“受限关键字”之间是否存在概念差异。也就是说,var在某些特定上下文的限制下,新令牌实际上不仅仅是一个关键字。如果是这样,为什么不简单地将其添加到“受限关键字”列表中?

为了进一步增加我的困惑, JLS的当前草案版本说:

字符序列 var 通常被视为标识符,但在某些特殊情况下,它就像是关键字一样。

这个定义当然听起来像一个“受限关键字”。

0 投票
3 回答
169 浏览

java - java-10 中的 XXXSummaryStatistics 新构造函数

我看到为(和)java-10添加了一个构造函数,它接受 4 个参数,即、和。IntSummaryStatisticsLongSummaryStatisticsDoubleSummaryStatisticscountminmaxsum

我理解为什么存在无参数构造函数,以便将其用于减少,例如:

这是有道理的,但是为什么需要添加带有 4 个参数的构造函数呢?(我在自己的回答中做了一个假设,但如果不是这样,我很乐意收回它。)

0 投票
4 回答
2657 浏览

java - java-10 中的 Collectors.toUnmodifiableList

你如何创建一个UnmodifiableList/Set/Map Collectors.toList/toSet/toMap,因为toList(等)文档为:

不保证返回的 List 的类型、可变性、可序列化性或线程安全性

java-10 之前,您必须提供Functionwith Collectors.collectingAndThen,例如:

0 投票
2 回答
1398 浏览

java - “数组初始化器需要一个明确的目标类型” - 为什么?

遵循JEP 286:局部变量类型推断描述

我想知道,引入这种限制的原因是什么,例如:

所以对我来说逻辑上应该是:

因为 Java 编译器已经可以正确推断出数组的类型:

那么障碍是什么?

0 投票
1 回答
662 浏览

java - 为什么不允许使用 'var' 的复合定义?

好吧,我真的认为这会起作用(在方法内):

但它没有,它不会编译 - “复合定义中不允许使用 var”。

我想这样做的原因是通常的权衡。这不是一个非常常用的功能,因此没有实现,但我们可以肯定并且可能在未来的版本中......

0 投票
3 回答
3359 浏览

java - Optional.get() 与重载 Optional.orElseThrow()

如何避免Exception在尝试从 anOptional或在使用时显式地抛出一个值Optional.get

目前,这可能通过 API 得到保护orElseThrow

然而,get在尝试访问类似

如果一个人想确保其中Optional一个有一个值,如果没有,他们不想继续null向前传播怎么办?

0 投票
1 回答
6037 浏览

java - 在 java 10 中使用局部变量类型推断的限制

Java 10 引入了局部变量类型推断功能JEP-286

我们可以使用 Local-Variable Type Inference 使用var保留类型名称

但是使用它有一些限制。

有人可以总结一下在哪些情况下我将无法使用 var 吗?

0 投票
2 回答
258 浏览

java - 可以将具有推断类型的局部变量重新分配给不同的类型吗?

我记得在某处读到,具有推断类型的局部变量可以用相同类型的值重新分配,这是有道理的。

但是,我很好奇如果您要重新分配x给不同类型的对象会发生什么。这样的东西还能编译吗?

我目前无法安装 JDK 10 的早期版本,并且不想等到明天才能找到。

0 投票
2 回答
2485 浏览

java - Java 10 编译的类可以在 9 上运行吗?

如果我理解正确,Java 10 的二进制形式与 Java 9 100% 相同,所以它不应该有任何问题。

我的假设正确吗?

0 投票
10 回答
232672 浏览

java - 无法使用 Maven 编译简单的 Java 10 / Java 11 项目

我有一个简单的 Maven 项目:

pom.xml:

当我通过 构建项目时mvn -X install -DskipTests=true,它失败了:

有没有办法来解决这个问题?