Recientemente me topé con lo útiles que son los objetos inmutables y que, por ejemplo, si pasa elementos a un constructor y su clase debe ser inmutable, debe copiar estos elementos si no son inmutables.
Esto requiere mucha verificación o conocimiento sobre mi proyecto, porque si tengo
public A(B foo)
y Bno es inmutable, Atendría que copiar B. Ahora imagine Bparece inmutable, pero tiene clases mutables en el constructor y así sucesivamente.
¿Existe algún estándar o práctica recomendada para documentar si una clase es inmutable en Java? Parece que no hay una @immutablepalabra clave en Javadoc.
La anotación @Immutable parece ser algo totalmente diferente para la generación automática de clases y no forma parte de Java estándar.