private synchronized T get(boolean throwIfNull) { return explicitOrElseGet(() -> this.defaultValue.get(throwIfNull)); }
private synchronized T get(boolean throwIfNull) { return explicitOrElseGet(() -> this.defaultValue.get(throwIfNull)); }
/** * Retrieve the explicit value if present, followed in precedence by whatever value, if not-null * supplied by the <code>preferred</code> parameter, followed by the default if all previous * options were null. * * @param preferred The intermediate value supplier. * @return The explicitly set, preferred or default value in that order, or possibly null. */ public T get(Supplier<? extends T> preferred) { return explicitOrElseGet(() -> { T value = preferred.get(); if (value != null) { return value; } return defaultValue.get(false); }); }
/** * Retrieve the explicit value if present, followed in precedence by whatever value, if not-null * supplied by the <code>preferred</code> parameter, followed by the default if all previous * options were null. * * @param preferred The intermediate value supplier. * @return The explicitly set, preferred or default value in that order, or possibly null. */ public T get(Supplier<? extends T> preferred) { return explicitOrElseGet(() -> { T value = preferred.get(); if (value != null) { return value; } return defaultValue.get(false); }); }