Если я запускаю код как в примере, то все работает нормально: можно вызвать этот метод несколько раз с разными работниками. Но как только я убираю ковычки с null, то есть делаю из него другой тип данных (Не строковый), то получается вызвать метод только 1 раз без ошибок. То есть так:
paySalary("Альбиуф");
А если 2 раза, то есть так:
paySalary("Альбиуф");
paySalary("Фриле");
Выходит такая ошибка:
Exception in thread "main" java.lang.NullPointerException
at lesson.Main.paySalary(Main.java:36)
at lesson.Main.main(Main.java:23)
Подскажите, пожалуйста, почему это происходит? package com.javarush.task.pro.task12.task1209;
import java.util.ArrayList;
/*
Бухгалтерия
*/
public class Solution {
public static ArrayList<String> waitingEmployees = new ArrayList<>();
public static ArrayList<String> alreadyGotSalaryEmployees = new ArrayList<>();
public static void initEmployees() {
waitingEmployees.add("Гвинно");
waitingEmployees.add("Гунигерд");
waitingEmployees.add("Боргелейф");
waitingEmployees.add("Нифрод");
waitingEmployees.add("Альбиуф");
waitingEmployees.add("Иногрим");
waitingEmployees.add("Фриле");
}
public static void main(String[] args) {
initEmployees();
}
public static void paySalary(String name) {
if (waitingEmployees.contains(name) && !alreadyGotSalaryEmployees.contains(name)) {
alreadyGotSalaryEmployees.add(name);
for (int i = 0; i < waitingEmployees.size(); i++) {
if (waitingEmployees.get(i).equals(name)) {
waitingEmployees.set(i, "null");
break;
}
}
}
}
}