Метод asda печатает «asda» только при строке "a"; для другой строки ничего не выводит, а при null вызов a.equals(...) приводит к NullPointerException.
Метод asda в Java: equals, строка a и NullPointerException
Метод asda печатает «asda» только при строке "a"; для другой строки ничего не выводит, а при null вызов a.equals(...) приводит к NullPointerException.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
package ru.gov.pfr.ecp.proezd.autotest.test;
public class Asd {
public void asda(String a){
if(a.equals("a")){
System.out.println("asda");
}
}
}
Ответ
Метод asda печатает «asda» только при строке "a"; для другой строки ничего не выводит, а при null вызов a.equals(...) приводит к NullPointerException.
Само определение класса ничего не печатает: нужен вызов метода. Если null должен просто означать несовпадение, безопасный вариант:
public void asda(String a) {
if ("a".equals(a)) {
System.out.println("asda");
}
}
Если null запрещён контрактом, лучше явно проверить аргумент и сообщить об ошибке. Имя метода желательно заменить осмысленным. В примере нет main, поэтому запуск класса как самостоятельной программы требует точки входа; это не мешает вызывать метод из другого кода.