Метод asda в Java: equals, строка a и NullPointerException

Метод asda печатает «asda» только при строке "a"; для другой строки ничего не выводит, а при null вызов a.equals(...) приводит к 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, поэтому запуск класса как самостоятельной программы требует точки входа; это не мешает вызывать метод из другого кода.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее