protected final void forEachObserver(Consumer<O> action) {
        ListHelper.forEach(observers, o -> action.accept(o));
    }
protected final void forEachObserver(Consumer<O> action) {
        ListHelper.forEach(observers, o -> action.accept(o));
    }
protected final void forEachObserver ( Consumer < O > action ) { ListHelper . forEach ( observers , o -> action . accept ( o ) ) ; }
Executes action for each observer, regardless of recursion state.
If {@code action} throws an exception for one observer, it will not
be called for any subsequent observers and the exception will be
propagated by this method.
@param action action to execute for each observer.
Executes action for each observer regardless of recursion state . If {