在我当前的项目中,我有一个类,它将其实例存储在一个变量中。此实例应可由项目中的所有其他类访问,但它只能由其自己的类进行更改。
我如何才能做到这一点?
发布于 2013-01-15 03:01:41
编写一个public getter,但不编写public setter。和字段本身的private
发布于 2013-01-15 03:06:43
简而言之,Object的状态在构造后不能改变,这就是所谓的immutable object。
String是不可变Class的一个常见示例。
通过以下方式创建一个class immutable -
overridden字段,或者使用class工厂并保留构造函数private.private和调用者在单个步骤中完全构造对象,而不是使用no-argument constructor结合后续对setXXX方法的调用。setXXX方法,还有任何可以更改状态的方法发布于 2015-03-14 03:21:12
有人建议"public getter,但no public setter for the private field“。
注意:只有当字段是原语类型时,这才能起作用。
如果它是具有setter的对象,则内容仍然可以修改;因此不是只读的。
看到Java语言提供了一些构造来使返回类型成为只读类型,而不必进行深度复制/克隆,这将是非常有趣的。
我正在想象ReadOnly getEmployee() { ...}
https://stackoverflow.com/questions/14324805
复制相似问题