小编gix*_*xlg的帖子

Lombok getter/setter 与 Java 14 记录

我喜欢Lombok项目,但最近我正在阅读并尝试 Java 14 的一些新功能。

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

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

最好使用这个:

record Person (String name, String surname) {}
Run Code Online (Sandbox Code Playgroud)

或者那个:

@AllArgsConstructor
@ToString
@EqualsAndHashCode
public class Person {
  @Getter private int name;
  @Getter private int surname;
}
Run Code Online (Sandbox Code Playgroud)

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

java getter lombok java-14 java-record

37
推荐指数
4
解决办法
6586
查看次数

处理避免 NullPointerException 的链式方法调用 - 哪个是最好的方法?

处理避免 NullPointerException 的链式方法调用 - 哪个是最好的方法?

让我们想象一下这种情景:3级MeetingRoomProjector

会议可能设置了一个房间,里面可能有一个投影仪。

现在假设我想知道投影仪的型号是什么。最自然的事情是做类似的事情

Meeting meeting = someMethod();
return meeting.getRoom().getProjector().getModelName();
Run Code Online (Sandbox Code Playgroud)

此代码可以正确返回投影仪的型号名称,不幸的是,此代码也可能导致异常:java.lang.NullPointerException如果包含在根类 Meeting(甚至 Meeting 类)中的类之一为空。

为了防止这个问题,并在最坏的情况下获得一个默认值,我们应该检查每个调用的返回值。

Meeting meeting = someMethod();
if (meeting != null) {
    Room room = meeting.getRoom();
    if (room != null) {
        Projector projector = room.getProjector();
        if (projector != null) {
            return projector.getModelName;
        }
    }
}
return "No Projector Exist";
Run Code Online (Sandbox Code Playgroud)

现在的代码非常糟糕。

处理这种避免 NullPointerException 的链式方法调用的最佳方法是什么?

java

1
推荐指数
1
解决办法
603
查看次数

当 JHipster 创建从 JDL 开始的虚拟数据时?

我是 JHipster 的新手,我正在做一些实验。
我创建了我的第一个 JHipster 应用程序并导入了可以从这里下载的“默认”JDL:JDL Studio(没有任何修改)。

导入后,我看到我的实体填充了一些演示数据,并且使用相同的信息csv创建了一些文件config/liquidbase/data

我检查了jhipster-jdl.jh文件,那里没有数据规范。

我不明白该数据是在哪里创建的,以及允许创建该虚拟数据的逻辑是什么。

java jhipster

0
推荐指数
1
解决办法
1786
查看次数

标签 统计

java ×3

getter ×1

java-14 ×1

java-record ×1

jhipster ×1

lombok ×1