由于我对编程比较陌生,所以我现在不知道如何检查方法是否不为空。在下面的代码中,我需要检查answers.get方法是否不为空,我该如何实现这一点?public class SharedViewModel extends ViewModel {private HashMap<Integer, MutableLiveData<String>> answers = new HashMap<>();public MutableLiveData<String> getAnswer(int questionId) { return answers.get(questionId);}public void setAnswer(int questionId, String answer) { // TODO make sure that answers.get is not null answers.get(questionId).setValue(answer); }}
3 回答
慕虎7371278
TA贡献1802条经验 获得超4个赞
只要在尝试访问该对象或操作它时添加一个null检查即可。answers.get(questionId)
public class SharedViewModel extends ViewModel {
public void setAnswer(int questionId, String answer) {
if(answers.get(questionId)!=null){
answers.get(questionId).setValue(answer);
}
}
}
如果您使用的是 Java8 及以上版本,您还可以使用
//nonNull will return true if object is not null
if(Objects.nonNull(answers.get(questionId))){
answers.get(questionId).setValue(answer);
}
牧羊人nacy
TA贡献1862条经验 获得超7个赞
只是为了添加到现有答案和您的待办事项中,您可能需要使用getOrDefault
,
answers.getOrDefault(questionId, answer);
添加回答
举报
0/150
提交
取消