Как проверить, если метод не является нулевым? - PullRequest
0 голосов
/ 22 сентября 2019

Поскольку я относительно новичок в программировании, я не знаю, как проверить, не является ли метод нулевым.В следующем коде мне нужно проверить, не является ли метод 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 ]

1 голос
/ 22 сентября 2019

Просто добавьте 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);
} 
0 голосов
/ 22 сентября 2019

Как правило, вы можете сделать это:

if(methodname(args)! =null ) {//statements} ;
0 голосов
/ 22 сентября 2019

Просто для добавления к существующему ответу и для вашей задачи вы можете использовать getOrDefault,

answers.getOrDefault(questionId, answer);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...