问题标签 [java-16]

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 回答
411 浏览

java - Record 无法从构造函数中获取参数名称?

看看如何在 Java 16 下使用反射记录(和 15 相同的行为)

查看规范构造函数,我确实看到了参数名称,但没有看到其他名称。

输出:

有什么解决方法吗?

编辑:只是在这里点“我”。我可以使用 java.beans 中的 @ConstructorProperties 注释。

0 投票
1 回答
727 浏览

java - 哪些注解目标适用于 Java 记录?

我有一个注释用于这样定义的方法或字段:

我想阻止用户在记录上使用它,因为在该上下文中使用此注释是没有意义的。似乎这样做不应该编译,因为我没有指定ElementType.PARAMETER为有效的@Target.

以下编译得很好:

但是这种带有紧凑构造函数的表单无法使用“ java: annotation type not applicable to this kind of declaration ”进行编译——这实际上是我所期望的。

0 投票
2 回答
694 浏览

java - SimpleDateFormat - 格式 - 九月 - JDK16

我刚刚将 Java 从 JDK-15 升级到 JDK-16,在Date使用SimpleDateFormat. 仅 9 月月份,使用格式化时yyyy-MMM-dd给出 4 个字符而不是 3 个字符。

例如: 2021-Sep-11显示为2021-Sept-11

对我来说似乎是一个错误。我在发行说明中看不到任何更新。任何人都面临类似的问题?在 JDK-15 之前工作正常。

0 投票
1 回答
207 浏览

java - Java 16 Annotation ElementType.RECORD_COMPONENT 无法反映

使用 JDK 16,我声明了两个注释:

我声明了一个这样的记录类:</p>

然后我使用反射来获取id的注解,即:

但是大小annotations是一个,我只得到了@B,这是为什么呢?谢谢

0 投票
1 回答
162 浏览

java - Java的记录类是如何实现同步的?

由于 Record 类实例没有普通 Object 实例具有的 obj 标头。但是我们仍然可以使用同步功能,例如:

会不会有像普通Object实例从轻量锁到重锁转换的过程?

0 投票
3 回答
1618 浏览

java - Is there a way to recognise a Java 16 record's canonical constructor via reflection?

Assuming I have a record like this (or any other record):

Is there a way to find this record's canonical constructor via reflection, i.e. the one that is implicitly declared in the RecordHeader?

0 投票
1 回答
522 浏览

java - 在 vscode 中获取 javaSE-16 错误的无效运行时 - 运行时与 javaSE-16 环境不兼容

我最近将我的发行版更改为arch附带manjaro安装的发行版openjdk,问题是我无法阅读 java 开发人员代码(例如,我想阅读如何实现 -由于某种原因Queue无法做到),openjdk所以我安装了解决问题的 oracle jdk-16- 我现在可以ctrl + leftclick在某个实体上查看它的实现。但这带来了一个新问题,每当我开始时vscode,它都会向我显示这个错误

runtime path我尝试了in 中的所有其他值,java:configure java runtime但我最终遇到了同样的问题,但runtime path.

我什至在我的操作系统中更改了我的默认java,archlinux-java set java-16-jdk并检查它是否设置正确archlinux-java status,它说java-16-jdk是默认jdk。

这是我的相关部分settings.json-

此外,当我将鼠标悬停在 java.configuration.runtime 的名称属性上时,我得到以下提示 -

我对java有点陌生,所以任何帮助表示赞赏。谢谢

0 投票
1 回答
1965 浏览

java - 如何在 Java 16 中删除 --enable-preview?

为了在 JDK 15 中使用记录,我曾经--enable-preview --release 15在我的 Ant 构建中使用传递给 javac 的参数进行编译。一切都编译并运行良好。

使用 JDK 16 时,如果我使用相同的参数进行编译,我会得到

错误:使用 --enable-preview 的源版本 15 无效(仅版本 16 支持预览语言功能)

记录是 JDK 16 的标准功能,所以我希望在没有这些参数的情况下进行编译。但是,如果我删除它们,我会得到

Foo.class 使用 Java SE 15 的预览功能。(使用 --enable-preview 允许加载包含预览功能的类文件)

Ant 报告编译失败:

编译失败;有关详细信息,请参阅编译器错误输出。在 org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:1425)

因此,带有标志和没有标志的编译失败。怎么了?

0 投票
1 回答
324 浏览

java - java记录上的构造函数注释

有没有办法获得像ConstructorProperties这样的注释,它@Target(CONSTRUCTOR)必须注释生成的 java 16 记录的构造函数?例如:

此 ^ 导致以下错误:

0 投票
1 回答
4536 浏览

java - Talend Open Studio - 错误 (sun.misc.Unsafe.defineClass(java.lang.String,[B,int,int,java.lang.ClassLoader,java.security.ProtectionDomain))

首次启动 Talend Open Studio 时出现错误

以管理员和用户身份启动。

尝试使用 Java 16、Java 11 和“OpenJDK(推荐发行版:Zulu)”

我该如何解决这个问题?