【发布时间】:2015-02-22 11:55:57
【问题描述】:
我在我的 Java 项目的一个类中使用了 ArrayList。该类跟踪列表是否已更改,并提供公共方法来添加和删除自动将变量设置为“已更改”的列表中的元素。
到目前为止,该列表是公开的,因为我希望我的列表在任何地方都可以公开阅读。但我只希望拥有列表的类能够修改它。所以没有来自外部类的修改。那可能吗?如果有,怎么做?
通常对于访问控制,您可能会使用 getter 和 setter 方法。但即使使用 getter 方法并将列表设置为私有,另一个类仍然可以执行getList().remove(element),从而从外部修改列表,而不会注意到列表已更改。
【问题讨论】:
-
只通过公共函数提供所有需要的功能,完全封装内部数据结构。所以写你自己的删除函数。
标签: java class arraylist runtimemodification