java类变量:公共访问只读,但私有访问r/w 1 月,2 周 Questions & Answers 10290 在我当前的项目中,我有一个将其实例存储在变量中的类。这个实例应该可以被项目中的所有其他类访问,但是它只能被自己的类修改 我怎样才能做到这一点
# 2 楼答案 有人建议“在私人领域,公共的接受者,而不是公共的接受者。” 注意:只有当字段是基元类型时,这才有效 如果是带有setter的对象,则仍然可以修改内容;因此不是只读的 Java语言提供了一些构造,使返回类型成为只读的,而不必进行深度复制/克隆,这将是一件有趣的事情 我在想象 只读getEmployee(){ ...}
# 3 楼答案 可以在许多地方找到用于实例化单例的样板代码,例如http://www.javacoffeebreak.com/articles/designpatterns/index.html 请注意,很多人认为单件是反模式,因为一旦你的应用程序中有单体引用,就很难去掉。p>
# 4 楼答案 简而言之,被称为immutable object的Object的状态在构造之后不能改变 String是不可变Class的一个常见例子 通过以下方式制作class{} 确保类不能是overridden-使用class{}或 static工厂和私人建筑工人李> 创建字段private和final 强制调用方在一个步骤中完全构造一个对象, 而不是使用no-argument constructor与后续 调用setXXX方法李> 不要提供任何可以更改对象状态的方法 无论如何——不仅仅是setXXX方法,还有任何可以改变的方法 陈述 如果类有任何可变的对象字段,那么它们必须是 在类和调用方之间传递时进行防御复制李>
# 1 楼答案
写一个
public
getter,但不写public
setter。以及字段本身private
# 2 楼答案
有人建议“在私人领域,公共的接受者,而不是公共的接受者。”
注意:只有当字段是基元类型时,这才有效
如果是带有setter的对象,则仍然可以修改内容;因此不是只读的
Java语言提供了一些构造,使返回类型成为只读的,而不必进行深度复制/克隆,这将是一件有趣的事情
我在想象 只读getEmployee(){ ...}
# 3 楼答案
可以在许多地方找到用于实例化单例的样板代码,例如http://www.javacoffeebreak.com/articles/designpatterns/index.html
请注意,很多人认为单件是反模式,因为一旦你的应用程序中有单体引用,就很难去掉。p># 4 楼答案
简而言之,被称为
immutable object
的Object
的状态在构造之后不能改变String
是不可变Class
的一个常见例子通过以下方式制作}
class
{overridden
-使用class
{static
工厂和私人建筑工人李>private
和final
no-argument constructor
与后续 调用setXXX
方法李>setXXX
方法,还有任何可以改变的方法 陈述