Puestos a plantear cuestiones que sugieran un debate, a la par que ayuden a mejorar el dominio del lenguaje, y la calidad del código, propongo un asunto bastante habitual.
Supongamos que tenemos una clase como la que sigue:
public class Lista<T> {
private List<T> lista;
public List<T> getLista() {
return lista;
}
public void setLista(List<T> lista) {
this.lista = lista;
}
}
Con una refactorización del campo que es habitual en los IDE.
Se pretende refactorizar la clase, de manera que sea thread-safe, y que sea segura en todos los aspectos.