我有一个Java Web服务,当没有找到任何项时,我希望返回一个null对象。相反,我正在返回一个所有属性都设置为null的实例。我可以检查具有null属性的项目,但更喜欢返回的项目为Null。
@WebMethod
@WebResult(name="item")
public item findItem(
@WebParam(name="Id") int Id){
//...
if(ItemNotFound(Id)){
return null;
}
}
在客户端,wsItem不为空
item wsItem=ws.findItem(1);
if(wsItem==null){
// this will not be hit
}
检查item属性将在客户端
上运行item wsItem=ws.findItem(1);
if(wsItem.Property1==null){
// this will
}
答案 0 :(得分:0)
根据你提供的信息,我不明白为什么你不能简单地做
if(item.getProperties() == null)
return null;
编辑:
好的,既然您已经更新了更多代码,我就能更好地了解正在发生的事情。你能设置一些断点吗?您确定ItemNotFound
正在返回true
,并且您实际上已经到达服务代码中的return null
行了吗?为了让客户端代码负责,我必须要做一些额外的事情,因为我在那里看不到new
关键字。
编辑2:
我最初认为这是一个纯Java问题,但根据你的最新评论,这不是真的。聊天中指出,这可能与您的注释或其他更广泛的设置有关。