Привет,
в общем, использую в некоторых поделках механизм уведомления по подписке
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;
линтер советует заменить локальной переменной, что очевидно не подходит поскольку нарушает время жизни объекта.
Не могу найти подходящую аннотацию, чтобы задавить.