Linter против WeakReference
От: pva  
Дата: 24.10.23 07:58
Оценка:
Привет,

в общем, использую в некоторых поделках механизм уведомления по подписке
    final private LinkedList<WeakReference<IDataReadyNotify>> listeners = new LinkedList<>();
    ...
    @Override
    public IDataChunk subscribe(IDataReadyNotify listener) {
        listeners.add(new WeakReference<>(listener));
        return this;
    }

    protected synchronized void notifyDataReady(IDataChunk chunk) {
        for (WeakReference<IDataReadyNotify> listener: listeners) {
            IDataReadyNotify item = listener.get();
            if (item != null) item.onDataReady(chunk);
        }
    }


соответственно, для
    private final IDataChunk.IDataReadyNotify onReadyNotifier = XXDataCollector.this::notifyDataReady;


линтер советует заменить локальной переменной, что очевидно не подходит поскольку нарушает время жизни объекта.
Не могу найти подходящую аннотацию, чтобы задавить.
newbie
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.