#java #implementation #event-listener #anonymous
#java #реализация #событие-прослушиватель #Аноним
Вопрос:
Не могу понять, как остановить класс пациента от прослушивания объекта при использовании анонимной реализации.
Я попытался использовать переменную Subject, чтобы я мог получить к ней доступ в reactToChange(); но не смог понять, что делать дальше.
import java.beans.PropertyChangeEvent;
public class Patient
{
private int ticketNumber;
public Patient(int ticketNumber, Subject subject)
{
this.ticketNumber = ticketNumber;
subject.addListener(this::reactToChange); // implementing anonymous implementation
}
private void reactToChange(PropertyChangeEvent event)
{
int newValue = (Integer) event.getNewValue();
if(newValue == ticketNumber){
System.out.println("Patient " ticketNumber " goes to the doctor's room");
//need to delete this listener here
} else {
System.out.println("Patient " ticketNumber " goes back to looking at phone");
}
}
}
Комментарии:
1. Вы пробовали
subject.removeListener(this::reactToChange);
?2. Привет, спасибо, я не знаю, как я это писал, но он не компилировался. Сейчас он компилируется, но не удаляет его как прослушиватель. Если вы хотите проверить код: ссылка