Как удалить прослушиватель в анонимной реализации

#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");
        }
      }
    
    }
  

Ссылка на Git hub

Комментарии:

1. Вы пробовали subject.removeListener(this::reactToChange); ?

2. Привет, спасибо, я не знаю, как я это писал, но он не компилировался. Сейчас он компилируется, но не удаляет его как прослушиватель. Если вы хотите проверить код: ссылка