¿Es una mala práctica para cambiar el valor de un objeto, sin pasar por la incubadora?

maksim2112:

Es decir, consigo el objeto a través del método get. Y luego cambiar el valor. Por lo tanto, no se crea una copia de este objeto, pero cambiar el valor del original.

Ejemplo con List:

getMyListFromPojo().addAll(additionalList);

Este código va a cambiar el valor en el campo myListFromPojo! ¿Es esta una práctica normal?

Andrew Tobilko:

¿Es una mala práctica para cambiar el valor de un objeto, sin pasar por la incubadora?

Una buena API no se permitirá cambiar el valor. getMyListFromPojo()devolvería una colección inmodificable, nadie desde el exterior sería capaz de alterar el valor devuelto.

Por otro lado, una clase POJO se supone que es una clase muy simple. Rara vez veo métodos POJO vuelven algo más complejo (por ejemplo, una copia o un objeto inmutable) que una referencia a un campo correspondiente.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=227432&siteId=1
Recomendado
Clasificación