安卓:表示该接口的所有领域都@Nullable
我从一个REST API使用改造加载数据。安卓:表示该接口的所有领域都@Nullable
我知道,这个API有时返回部分结果:某些字段有时也不见了。
为了确保我妥善处理这些情况,我目前注释等领域的@Nullable
在定义API接口:
class RedactedForecast implements Serializable {
@Nullable String date;
@Nullable String time;
@Nullable String overview_title;
@Nullable String overview;
@Nullable String forecast_title;
@Nullable String forecast;
}
但是加入这个注释处处不方便,因为结果对象是复杂的。
有没有办法说,所有从一个类中的字段有可能为空?有没有更好的方法来处理这个问题?
在回信如果收到的数据然后存储在数组列表等:
的ArrayList VLIST = response.body();
在这里,所有的数据然后存储在VLIST对象。
本次活动现在做一个功能,如:
公众的ArrayList getVideosPlz(){
ArrayList<RedactedForecast> videos = new ArrayList<>();
try {
for (int i = 0; i <vList.size() ; i++) {
RedactedForecast users1=new RedactedForecast();
String id=vList.get(i).getId();
if(id!=null)
{
users1.setId(id);
}
videos.add(users1);
}
} catch (Exception e) {
Toast.makeText(MainActivity.this, "Sorry Server Down. Try again!!!", Toast.LENGTH_SHORT).show();
}
return videos;
}
在这里,在上面的函数,你可以看到,只有当数据= null,则数据将!设置为新阵列称为视频,并在最后收到所有数据时,然后这个“视频”对象返回并在改进onResponse接收为:
ArrayList receiveData = getVideosplz();
最后,你可以通过这个receiveData的到您的recyclerview等
希望它帮助。谢谢!!!
'@ Nullable'的想法是使用静态分析来指出你的代码中的NPE可能发生的位置,以确保你正确处理它。通常你想根据缺失的字段做一些特定的事情。 – MasterScrat
怀疑它,因为基元例如不能为空 –