问题标签 [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.
java - Record 无法从构造函数中获取参数名称?
看看如何在 Java 16 下使用反射记录(和 15 相同的行为)
查看规范构造函数,我确实看到了参数名称,但没有看到其他名称。
输出:
有什么解决方法吗?
编辑:只是在这里点“我”。我可以使用 java.beans 中的 @ConstructorProperties 注释。
java - 哪些注解目标适用于 Java 记录?
我有一个注释用于这样定义的方法或字段:
我想阻止用户在记录上使用它,因为在该上下文中使用此注释是没有意义的。似乎这样做不应该编译,因为我没有指定ElementType.PARAMETER
为有效的@Target
.
以下编译得很好:
但是这种带有紧凑构造函数的表单无法使用“ java: annotation type not applicable to this kind of declaration ”进行编译——这实际上是我所期望的。
java - SimpleDateFormat - 格式 - 九月 - JDK16
我刚刚将 Java 从 JDK-15 升级到 JDK-16,在Date
使用SimpleDateFormat
. 仅 9 月月份,使用格式化时yyyy-MMM-dd
给出 4 个字符而不是 3 个字符。
例如: 2021-Sep-11
显示为2021-Sept-11
对我来说似乎是一个错误。我在发行说明中看不到任何更新。任何人都面临类似的问题?在 JDK-15 之前工作正常。
java - Java 16 Annotation ElementType.RECORD_COMPONENT 无法反映
使用 JDK 16,我声明了两个注释:
我声明了一个这样的记录类:</p>
然后我使用反射来获取id的注解,即:
但是大小annotations
是一个,我只得到了@B
,这是为什么呢?谢谢
java - Java的记录类是如何实现同步的?
由于 Record 类实例没有普通 Object 实例具有的 obj 标头。但是我们仍然可以使用同步功能,例如:
会不会有像普通Object实例从轻量锁到重锁转换的过程?
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
?
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有点陌生,所以任何帮助表示赞赏。谢谢
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)
因此,带有标志和没有标志的编译失败。怎么了?
java - java记录上的构造函数注释
有没有办法获得像ConstructorProperties这样的注释,它@Target(CONSTRUCTOR)
必须注释生成的 java 16 记录的构造函数?例如:
此 ^ 导致以下错误: