Nếu tôi có tuyên bố như sau trong một lớp học nơi Synapse
là một loại trừu tượng:Tuyên bố một lĩnh vực Danh sách với từ khóa thức
private final List<Synapse> synapses;
Liệu final
cho phép tôi vẫn có thể thay đổi trạng thái của Synapse
đối tượng trong số List
, nhưng ngăn tôi thêm các đối tượng Synapse
mới vào danh sách? Nếu tôi sai, bạn có thể giải thích những gì final
đang thực hiện và khi nào tôi nên sử dụng từ khóa final
thay thế.
Đó là giá trị chỉ ra rằng mặc dù không có gì có thể được thêm vào, gỡ bỏ, hoặc thay thế trong 'unmodifiableList' xây dựng như thế này, các yếu tố của danh sách vẫn có thể có nhà nước của họ đã thay đổi (nếu là có thể thay đổi). Không có gì về việc kê khai danh sách hoặc xây dựng có thể ngăn chặn điều đó. –
Vì vậy, bạn có thể làm: 'Danh sách cuối cùng synapses = createList();' và sau đó làm 'synapses.add (newSynapse())'? Sau đó, nó có nghĩa là 'synapses' không thể trỏ đến bất cứ điều gì khác nhưng danh sách này phải không? –
@ A.Vieira vâng, đúng, miễn là 'synapses' là một đối tượng có thể thay đổi được như ArrayList. –