public abstract class FieldWithDefault<T> extends Object
value()
returns
"foo", while isDefault()
can be used to keep track of the fact that the value was from the default.Modifier and Type | Method and Description |
---|---|
static <T> FieldWithDefault<T> |
create(T field,
T defaultValue)
Create a
FieldWithDefault using the provided field and its default value. |
static <T> FieldWithDefault<T> |
createLazy(T field,
Supplier<T> defaultValue)
Create a
FieldWithDefault using the provided field and its default value. |
abstract boolean |
isDefault()
True, if the value returned by
value() is the default value (i.e. |
abstract T |
value()
Retrieve the value of this field.
|
abstract T |
valueOrNullIfDefault()
Return the field exactly as it was specified when the field-with-default was created.
|
public static <T> FieldWithDefault<T> create(T field, T defaultValue)
FieldWithDefault
using the provided field and its default value. If the field is null, the default value
will be returned by value()
and isDefault()
will return true. If the field is not null, the field value
will be returned by value()
and isDefault()
will return false.createLazy(Object, Supplier)
public static <T> FieldWithDefault<T> createLazy(T field, Supplier<T> defaultValue)
FieldWithDefault
using the provided field and its default value. If the field is null, the default value
will be returned by value()
and isDefault()
will return true. If the field is not null, the field value
will be returned by value()
and isDefault()
will return false.
This differs from create(Object, Object)
in that the default value won't be resolved if the provided field is
not null. The default value also won't be resolved until the first value()
call. This is useful for delaying
expensive calculations until right before they're needed.
public abstract T value()
public abstract boolean isDefault()
value()
is the default value (i.e. the field is null). False otherwise.public abstract T valueOrNullIfDefault()
createLazy(Object, Supplier)
.Copyright © 2021. All rights reserved.