|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT | |||||||||
@Documented
@Inherited
@Restriction
@Retention(value=SOURCE)
@Target(value={TYPE,METHOD})
public @interface UnmodifiableUnmodifiables are objects that do not expose publicly any method that may modify receiver internal state, if any. However, object's state can still be mutated indirectly, if it holds and/or exposes references to objects that may be mutated
Unmodifiables can still implement lazy initialization and/or caching, as long as it remains encapsulated and is not exposed publicly
Types annotated as Unmodifiable denote that all their instances grant
to have such property. Methods annotated as Unmodifiable denote that
all the objects returned by them have such property.
Restriction
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT | |||||||||