有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java类变量:公共访问只读,但私有访问r/w

在我当前的项目中,我有一个将其实例存储在变量中的类。这个实例应该可以被项目中的所有其他类访问,但是它只能被自己的类修改

我怎样才能做到这一点


共 (4) 个答案

  1. # 1 楼答案

    写一个publicgetter,但不写publicsetter。以及字段本身private

  2. # 2 楼答案

    有人建议“在私人领域,公共的接受者,而不是公共的接受者。”

    注意:只有当字段是基元类型时,这才有效
    如果是带有setter的对象,则仍然可以修改内容;因此不是只读的

    Java语言提供了一些构造,使返回类型成为只读的,而不必进行深度复制/克隆,这将是一件有趣的事情

    我在想象 只读getEmployee(){ ...}

  3. # 4 楼答案

    简而言之,被称为immutable objectObject的状态在构造之后不能改变

    String是不可变Class的一个常见例子

    通过以下方式制作class{}

    • 确保类不能是overridden-使用class{}或 static工厂和私人建筑工人
    • 创建字段privatefinal
    • 强制调用方在一个步骤中完全构造一个对象, 而不是使用no-argument constructor与后续 调用setXXX方法
    • 不要提供任何可以更改对象状态的方法 无论如何——不仅仅是setXXX方法,还有任何可以改变的方法 陈述
    • 如果类有任何可变的对象字段,那么它们必须是 在类和调用方之间传递时进行防御复制