java-record相关内容

哪些注释目标适用于 Java 记录?

我有一个用于方法或字段的注释,定义如下: @Retention(RetentionPolicy.RUNTIME)@Target(value = {ElementType.METHOD, ElementType.FIELD})公共@interface NotColumn {} 我想阻止用户在记录上使用它,因为在那个上下文中使用这个注释是没有意义的.似乎这样做不应该编译,因为我没有将 Elemen ..
发布时间:2021-11-10 22:56:07 Java开发

具有空组件的Java记录

我真的很喜欢至少在Java 14中添加记录作为预览功能,因为它有助于减少我对简单,不可变的“数据持有者"使用lombok的需求.但是我在实现可为空的组件方面遇到了问题.我试图避免在我的代码库中返回 null 来指示可能不存在值.因此,我目前经常在龙目岛上使用以下模式. @Value公共类MyClass {字符串ID;@Nullable字符串值;可选getValue(){//覆 ..
发布时间:2021-05-18 20:14:51 Java开发

定义记录的默认构造函数

我有一条记录,想要向其中添加默认构造函数. 公共记录Record(int recordId){公开记录{}} 但是它使用 int 参数创建了构造函数. 公共最终类Record扩展了java.lang.Record {private final int recordId;公共记录(int);//其他方法} 我们如何向记录添加默认构造函数? 解决方案 要分裂头发,您永远都不能定义默 ..
发布时间:2021-05-18 19:58:09 Java开发

Java Records实际上是通过相似的类声明来节省内存还是它们更像语法糖?

我希望Java 14记录实际上比类似的数据类使用更少的内存. 它们还是使用相同的内存? 解决方案 要添加到@lugiorgi >和我可以分析字节码的类似显着差异在于toString,equals和hashcode的实现. 一方面,现有的类中覆盖了Object类API的 public class City { private final Integer id; ..
发布时间:2020-07-24 09:10:29 Java开发

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

我试图查看是否可以用Java 14中的新Record类替换现有的Pojo.出现以下错误: com.fasterxml.jackson.databind.exc.InvalidDefinitionException:无法 构造com.a.a.Post的实例(没有创建者,如默认 构造,存在):无法从对象值反序列化(没有委托- 或基于资源的创作者) 我得到的错误是,记录没有构造函数,但是从我 ..
发布时间:2020-07-09 01:15:23 Java开发

如何通过ModelMapper将Java记录用作DTO?

我正在重构代码.我想在DTO中使用Java记录而不是Java类.要将DTO转换为Entity,我正在使用ModelMapper(版本2.3.5).当我尝试获取有关用户的信息(调用方法将Entity转换为DTO的方法)时,出现此错误. Failed to instantiate instance of destination xxx.UserDto. Ensure that xxx.UserD ..
发布时间:2020-06-30 23:56:22 Java开发

Java-14之后的getter/setter命名约定

Java 14引入了记录功能.记录创建的吸气剂与字段同名,因此例如可以写print(person.name()).但是旧的Java bean约定规定,应将此方法命名为getName(). 在同一代码库中同时使用这两种样式看起来不太好.无法将所有内容迁移到记录,因为它们太局限了,无法替换所有用例. 是否有正式或半官方的指南如何在Java 14中以新代码命名吸气剂和吸气剂? 解决方案 ..
发布时间:2020-05-16 20:40:55 Java开发

龙目岛(Lombok)Getter/Setter vs Java 14记录

我喜欢项目 Lombok ,但是如今,我正在阅读并尝试Java 14的一些新功能. 在新功能内,还有一个 record 关键字,它允许使用已构建的类创建类-具有以下功能:构造函数,私有最终字段,访问器,equals/hashCode,getter和toString方法. 现在我的问题是:最好依靠Lombok的功能,还是我们应该开始使用记录功能: 最好使用这个: record ..
发布时间:2020-05-04 03:42:00 Java开发