Immutable object (source code)

= Immutable object

An immutable object does not change its observable state after construction. Immutable fields prevent reassignment of their stored values, but fields containing references to mutable <software objects> do not automatically make the reachable <software object> graph immutable. Read-only generic producers can often support covariant <type parameters>; publicly writable fields generally cannot.