由于我對編程比較陌生,所以我現在不知道如何檢查方法是否不為空。在下面的代碼中,我需要檢查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
提交
取消