T
- the type of the value it holds.public interface Attribute<T>
限定符和类型 | 方法和说明 |
---|---|
boolean |
compareAndSet(T oldValue,
T newValue)
Atomically sets the value to the given updated value if the current value == the expected value.
|
T |
get()
Returns the current value, which may be
null |
T |
getAndRemove()
已过时。
please consider using
getAndSet(Object) (with value of null ). |
T |
getAndSet(T value)
Atomically sets to the given value and returns the old value which may be
null if non was set before. |
AttributeKey<T> |
key()
Returns the key of this attribute.
|
void |
remove()
已过时。
please consider using
set(Object) (with value of null ). |
void |
set(T value)
Sets the value
|
T |
setIfAbsent(T value)
Atomically sets to the given value if this
Attribute 's value is null . |
AttributeKey<T> key()
T get()
null
void set(T value)
T getAndSet(T value)
null
if non was set before.T setIfAbsent(T value)
Attribute
's value is null
.
If it was not possible to set the value as it contains a value it will just return the current value.@Deprecated T getAndRemove()
getAndSet(Object)
(with value of null
).AttributeMap
and returns the old value. Subsequent get()
calls will return null
.
If you only want to return the old value and clear the Attribute
while still keep it in the
AttributeMap
use getAndSet(Object)
with a value of null
.
Be aware that even if you call this method another thread that has obtained a reference to this Attribute
via AttributeMap.attr(AttributeKey)
will still operate on the same instance. That said if now another
thread or even the same thread later will call AttributeMap.attr(AttributeKey)
again, a new
Attribute
instance is created and so is not the same as the previous one that was removed. Because of
this special caution should be taken when you call remove()
or getAndRemove()
.
boolean compareAndSet(T oldValue, T newValue)
true
otherwise false
.@Deprecated void remove()
set(Object)
(with value of null
).AttributeMap
. Subsequent get()
calls will return @{code null}.
If you only want to remove the value and clear the Attribute
while still keep it in
AttributeMap
use set(Object)
with a value of null
.
Be aware that even if you call this method another thread that has obtained a reference to this Attribute
via AttributeMap.attr(AttributeKey)
will still operate on the same instance. That said if now another
thread or even the same thread later will call AttributeMap.attr(AttributeKey)
again, a new
Attribute
instance is created and so is not the same as the previous one that was removed. Because of
this special caution should be taken when you call remove()
or getAndRemove()
.