我有一个类:
class Con {
private List<Ind> inds;
}
我用Gson把一个JSON字符串转换成这个类对象,所以如果JSON没有键inds,这个变量inds会被赋一个空值,有没有办法给inds赋一个空的ArrayList?
我的想法
一个直接的方法是在Gson对象构建完成后,检查所有的null对象,并将它们赋给新的ArrayList〈〉(),有没有更好的方法?
public List<Ind> getInds() {
return inds;
}
目前,我在以下代码中使用了上述getter:con.getInds().stream(),这将导致NullPointerException异常。
我不确定什么是解决这个问题的好方法。除了List,我应该返回一个可选的还是应该修改这个getter
public List<Ind> getInds() {
inds==null?new ArrayList<>():inds;
}
以上也将解决NullPointerException。不确定使用这种方法是否有优点和缺点。虽然现在没有办法识别Json是否有一个名为inds的键。对于我正在编写的当前代码来说,这可能不需要。但这里肯定有一个意义损失。
1条答案
按热度按时间o4hqfura1#
解决此问题的一种方法是为字段指定默认值,例如:
Gson将保留此默认值;只有当JSON数据中存在该字段时,才会重新分配字段值。
不过,有几件事要记住:
null
null
值,则Gson仍将其设置为value