Я сейчас работаю над домашней работой, которая имитирует тревогу, у меня есть метод с именем removeAlarm()
, я хочу принудительно удалить добавленную тревогу, я попробовал alarm.remove(0)
и попытался выполнить итерацию, но в тестовой программе сигнал тревоги все еще там. Кто-нибудь наблюдает за проблемой?
private ArrayList<String> alarm;
public AlarmClock() throws IllegalValueException {
super();
alarm = new ArrayList<String>();
}
public AlarmClock(int hour, int minute) throws IllegalValueException {
super(hour, minute);
alarm = new ArrayList<String>();
}
public void addAlarm(int hour, int minute) throws IllegalValueException {
int limit = 2;
int length = String.valueOf(hour).length();
String displayValue = "";
for (int i = 0; i < limit - length; i++) {
displayValue = displayValue + "0";
}
displayValue = displayValue + hour + ":";
limit = 2;
length = String.valueOf(minute).length();
for (int i = 0; i < limit - length; i++) {
displayValue = displayValue + "0";
}
displayValue = displayValue + minute;
alarm.add(displayValue);
}
public void removeAlarm() {
if (alarm.equals(getClass())) {
alarm.remove(alarm.equals(getTime()));
}
}
super.timeTick();
for (int x = 0; x < alarm.size(); x++) {
if (alarm.get(x).equals(getTime())) {
System.out.println("LARMET ÄR KLARR, VAKNAAAAA");
alarm.remove(x);
} else {
return;
}
}
Моя тестовая программа
try {
AlarmClock alarm = new AlarmClock(12, 3);
alarm.timeTick();
System.out.println(alarm.getTime());
alarm.timeTick();
System.out.println(alarm.getTime());
alarm.removeAlarm();
alarm.addAlarm(12, 6);
alarm.timeTick();
System.out.println(alarm.getTime());
} catch (IllegalValueException a) {
System.out.println(a.getMessage());
}
System.out.println("Expected: alarm removed at 12:06 ");
System.out.println(" ");
Output
12:04
12:05
LARMET ÄR KLARR, VAKNAAAAA
12:06
Expected: alarm removed at 12:06