@NotNull private ChangeListener<String> prepareAddListener() { @NotNull Function<String, ?> typeCaster = FieldUtils.getTypeCaster(type); return (observableValue, oldValue, newValue) -> { if (isCorrect(newValue)) { if (isZeroEqual(newValue)) { newValue = "0"; } Type fieldValue = convertFieldValue(newValue, typeCaster); fieldUpdater.accept(fieldValue); } else { setText(oldValue); } }; }