Я просто хочу знать, почему компилятор позволит продолжить программу обычно в первом условии:Почему IF условие не выполняется на андроид
public void ButtonOnClickDirectoryList(View v){
try {
if (!spnOptionSelectedDepartment.equals(null) && !spnOptionSelectedCities.equals(null)) {
if (!spnOptionSelectedTypes.equals(null)) { //code....}
в spnOptionSelectedDepartment и spnOptionSelectedTypes являются Строки и определены в начале из класс как это:
private String spnOptionSelectedDepartment = null;
private String spnOptionSelectedCities = null;
private String spnOptionSelectedTypes = null;
так, когда я нажимаю на кнопку, это вызвать этот метод, и это те ценности, которые у меня есть в данный момент:
spnOptionSelectedDepartment = "9999"
spnOptionSelectedCities = null
spnOptionSelectedTypes = null
поэтому, когда я положил точку останова на это условие, он просто продолжает проверять остальную часть кода внутри этого, если ... Может ли кто-нибудь объяснить мне, почему это поведение?
Позвольте мне изменить вопрос, да он бросает NullPointer исключение на второй, если ...
if (!spnOptionSelectedTypes.equals(null)) {
, но почему она позволяет первому IF, когда spnOptionSelectedCities = нуль ...?
'если (spnOptionSelectedTypes! = NULL)' – Blackbelt
Код размещен выше выбросит 'NullPointerException' если' spnOptionSelectedDepartment' является ' null'. –
Вы должны использовать == для сравнения строки с нулем.equals - для сравнения значений двух строк. –