*"* > > *[...] se mi consenti una considerazione.... public final nei campi va > bene fino ad un certo punto,*
> *con oggetti mutabili credo che si lasci la porta aperta a disastri* *Scusa, c'e' uno "static" di troppo. Sono public final e, pertanto, non mutabili. L'unico modo per "caricarli" e' con il costruttore* *Ciao,* * Bruno"* La sostanza non cambia: se uno dei field esposto come public final è mutabile (es. java.util.Date o una qualsiasi Collection) allora la classe che crei non è immutabile ed è possibile che un client che la usa possa invalidare gli invarianti che sono stati definiti; molto meglio proteggere l'informazione a mio avviso (se vuoi ti faccio un esempio). Siamo andati un po' OT comunque... :-) Ho visto le mappe che ha indicato Federico e non fanno al caso mio: dall'esempio che ho visto su GitHub mi sembra che si perdano tutti i benefici di avere un compilatore e un linguaggio tipizzato solo per evitare di scrivere setter e getter; ci sono altri modi IMHO. Ciao, Ramon