问题标签 [java-14]

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 投票
4 回答
4161 浏览

java - 使用新的 Record 类时无法反序列化

我正在尝试查看是否可以用 Java 14 中的新 Record 类替换现有的 Pojos。但无法这样做。收到以下错误:

com.fasterxml.jackson.databind.exc.InvalidDefinitionException:无法构造实例com.a.a.Post(没有创建者,如默认构造,存在):无法从对象值反序列化(没有基于委托或属性的创建者)

我知道错误是说记录没有构造函数,但是从我看到的记录类在后台处理它并且相关的吸气剂也在后台设置(不完全是吸气剂,而是 id() title() 等等在没有 get 前缀的情况下)。是因为 Spring 还没有采用最新的 Java 14 记录吗?请指教。谢谢。

我在 Spring Boot 版本 2.2.6 中执行此操作并使用 Java 14。

以下工作使用通常的 POJO。

邮政类

调用休息服务的方法现在可以使用,因为我正在使用上面的 POJO。

但是,如果我切换到使用记录的位置,则会收到上述错误。

新的记录类。

更改方法以使用记录而不是失败。

编辑:

尝试将如下构造函数添加到记录 Post 和相同的错误:

或者

0 投票
2 回答
13125 浏览

java - 为记录定义默认构造函数

我有一条记录,想为其添加默认构造函数。

但它使用int参数创建了构造函数。

我们如何向记录添加默认构造函数?

0 投票
4 回答
1299 浏览

java - Java Records 是否真的比类似的类声明节省了内存,或者它们更像是语法糖?

我希望 Java 14 记录实际上比类似的数据类使用更少的内存。

他们还是使用相同的内存?

0 投票
3 回答
1564 浏览

java - Java 14 记录和数组

给定以下代码:

显然,使用了数组的toString,equals方法(而不是静态方法Arrays::equals,Arrays::deepEqualsArray::toString)。

所以我猜Java 14 Records(JEP 359)不能很好地处理数组,必须使用IDE生成相应的方法(至少在IntelliJ中,默认情况下会生成“有用”的方法,即它们使用静态方法中Arrays)。

或者有没有其他解决方案?

0 投票
2 回答
18519 浏览

java - 为什么 Java 14 不是 LTS?

Java 14是非 LTS 的

考虑到新的 6 个月版本的发布系列,并且 8 和 11 是 LTS,Java 14 不应该是下一个 LTS 版本吗?

还是纯粹基于 Java 架构师来决定他们为 LTS 选择哪一个?

我在网上搜索但找不到答案。

0 投票
1 回答
590 浏览

android-studio - 我已将 JDK 8 升级到 JDK14,但在 android studio 中遇到了一些问题

我已将 JDK 8 升级到 JDK14,我在 android studio 中遇到了一些问题,我想将其退回,任何机构都可以帮助我完全降级以解决我在以下链接中提出的一个问题,我想我是否可以完全返回它可以工作: 在此处输入链接描述

0 投票
1 回答
5558 浏览

java - gradle with openjdk 14 不支持的类文件主要版本 58

我正在尝试使用 openjdk 14 运行 gradle 6.3 构建,目标是 java 14。我收到以下错误。我知道这与编译文件的版本有关,但我的理解是 gradle 6.3 支持 java 14。

0 投票
1 回答
2499 浏览

javafx - 在 jpackage 之后运行 JavaFX 应用程序

我有一些非常菜鸟的问题。我尝试在 OpenJDK 14 中使用 jpackage 为我的测试应用程序创建安装。这是我所做的:

首先,创建自定义 JRE

那是成功的。我从运行配置中复制了我的 Eclipse 中的参数。之后使用 jpackage 进行安装

创建了 .msi 文件,我运行它,它在我的 Win10 应用程序中创建了条目。当然,我不知道如何在 windows 菜单中找到它,但它位于我的 C:\Program Files\HelloFX 中。当我尝试运行应用程序消息“无法启动 JVM”弹出时,我找到了带有 Duke 图像的图标和应用程序文件。

有人可以帮助我,我做错了什么?我真的很想完成这项工作并深入研究 JavaFX。

0 投票
1 回答
2932 浏览

java - Java,自从在 Linux 上迁移到 Java 14 后,无法执行 spawn helper 错误

刚刚从Java 11迁移到Java 14

以下代码现在在 linux 机器上失败:

使用堆栈跟踪

Java 14 中发生了什么变化会导致这种情况?

我使用 java 14 在 Windows 上运行了等效代码,并且运行良好。但是我已经在这台使用 Java 11 和 Java 14 的 unix 机器上重试了相同的代码库,并且可以确认Java 11 始终有效Java 14 始终失败

0 投票
6 回答
11004 浏览

java - Lombok getter/setter vs Java 14 记录

我喜欢Lombok项目,但这些天我正在阅读并尝试 java 14 的一些新功能。

在新功能中,有一个record关键字,允许创建一个已经内置以下功能的类:构造函数、私有最终字段、访问器、equals/hashCode、getter、toString 方法。

现在我的问题是:更好地依赖 Lombok 的功能还是我们应该开始使用记录功能:

最好使用这个:

或者那个:

这两种方法的优缺点是什么?