gpt4 book ai didi

java - 不合逻辑的空指针异常

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:49:35 24 4
gpt4 key购买 nike

<分区>

我正在做一个 Rest 集成项目,我正在尝试对我正在实现的 API 发出 PUT api 请求。这是开始执行 PUT 操作的部分代码。

String name = vivienda.getName();
Vivienda oldVivienda = repository.getViviendas(name);
if (oldVivienda == null) {
throw new NotFoundException("No se ha encontrado ninguna vivienda con el nombre="+ vivienda.getName());
}

问题是,当我执行请求时,它会向我返回在那里声明的 NotFoundException,所以它不起作用。

玩我本地化的代码,错误当然是对象 oldViviendanull,就好像我试图用它的 getName 做点什么,它会抛出 NullPointerException

但这就是我开始什么都不懂的地方。我更改了代码以尝试查找错误的位置,直接将名称字符串像这样:

Vivienda oldVivienda = repository.getViviendas("vivienda1");
if (oldVivienda == null) {
throw new NotFoundException("No se ha encontrado ninguna vivienda con el nombre="+ vivienda.getName());
}

这非常有效。这会导致认为问题出在参数对象 vivienda 上,它或者它的名称是空的或者不是“vivienda1”。但是,还记得异常(exception)吗?在异常中,我使用 vivienda.getName(),当我看到响应中抛出的错误时,它实际上是“vivienda1”。所以我很好地发送了对象,当你执行 vivienda.getName() 时,它返回“vivienda1”。当您将字符串“vivienda1”放入 repository.getViviendas("vivienda1") 时,它会完美运行。

那么,问题出在哪里呢?类型有什么问题吗?但是 getName 是一个返回字符串的简单 get 方法。如果某处或某处有空间,我已经检查了好几次。错误出在前两行代码中,但我不知道发生了什么。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com