Se ho la seguente dichiarazione all'interno di una classe in cui Synapse
è un tipo astratto:Dichiarare un campo lista con la parola finale
private final List<Synapse> synapses;
Vuol final
mi permetterà di essere ancora in grado di cambiare lo stato delle Synapse
oggetti nel List
, ma mi impedisce di aggiungere nuovi oggetti Synapse
all'elenco? Se ho torto, potresti spiegare cosa sta facendo final
e quando dovrei usare la parola chiave final
.
Vale la pena sottolineare che, anche se nulla può essere aggiunto, rimosso o sostituito in 'unmodifiableList' costruita in questo modo, gli elementi della lista possono avere ancora il loro stato cambiato (se sono mutevole). Nulla sulla dichiarazione di lista o sulla costruzione può impedirlo. –
Quindi è possibile: 'Elenco finale synapses = createList();' e quindi fare 'synapses.add (newSynapse())'? Quindi significa che 'synapses' non può indicare nient'altro che questa lista, giusto? –
@ A.Vieira sì, giusto, a patto che 'synapses' sia un oggetto mutabile come ArrayList. –