gpt4 book ai didi

java - Getter 空指针而不调用它

转载 作者:行者123 更新时间:2023-12-02 10:47:03 25 4
gpt4 key购买 nike

我在 getter 方法中遇到 nullPointer 问题。

这是代码:

 public String getTitle()
{
if(!title.isEmpty())
return title;
else
return "foo";
}

当我将其更改为普通 setter/getter 时,它工作得很好。

public String getTitle()
{
return title;
}

诀窍在哪里?有反射技巧吗?

更新问题不在于空检查,而在于执行 getter 而不调用它

堆栈跟踪

org.codehaus.jackson.map.JsonMappingException:(原为 java.lang.NullPointerException)(通过引用链:java.util.ArrayList[0]->si.mikropis.webkiosk.model.vao.wine .Wine["标题"])

由:java.lang.NullPointerException引起
在 si.mikropis.webkiosk.model.vao.base.BaseModel.getTitle(BaseModel.java:41)
在 sun.reflect.NativeMethodAccessorImpl.invoke0( native 方法)
在 sun.reflect.NativeMethodAccessorImpl.invoke(来源未知)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(来源未知)
在 java.lang.reflect.Method.invoke(来源未知)
在 org.codehaus.jackson.map.ser.BeanPropertyWriter.get(BeanPropertyWriter.java:483)
在 org.codehaus.jackson.map.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:418)
在 org.codehaus.jackson.map.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:150)
... 32 更多

最佳答案

检查title是否也为空:

  public String getTitle()
{
if(title != null && !title.isEmpty())
return title;
else
return "foo";
}

附注 根据更新的问题添加附加注释:由于 JSON 解析器必须遍历对象的所有成员,因此可能没有简单的解决方法。我能想到的唯一解决方案就是告诉 jackson not to include null values或发送至implement a custom mapper ;如果性能是我最关心的问题,我会选择 google-gson因为他们的库非常快,并且比 Jackson 消耗更少的内存。

关于java - Getter 空指针而不调用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18353559/

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