public static <T> void then(Worker<T> worker, Consumer<T> consumer) { ReadOnlyBooleanProperty doneProperty = createIsDoneProperty(worker); ChangeListener<Boolean> listener = (o, oldValue, newValue) -> { if (newValue) { consumer.accept(worker.getValue()); } }; doneProperty.addListener(listener); }