Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何创建不可变对象?_Java - Fatal编程技术网

Java 如何创建不可变对象?

Java 如何创建不可变对象?,java,Java,在我的程序中,我想创建一个不可变的对象。例如,使arraylist或map不可变。正如我们所知,我们有一个字符串,即不可变的对象,类似地,我想创建我自己的不可变对象。不可变只意味着对象的值不能更改。例如,这里有一个围绕整数的不可变包装器: public class ImmutableInt { private final int value; public ImmutableInt(int value) { this.value = value; } public i

在我的程序中,我想创建一个不可变的对象。例如,使arraylist或map不可变。正如我们所知,我们有一个字符串,即不可变的对象,类似地,我想创建我自己的不可变对象。

不可变只意味着对象的值不能更改。例如,这里有一个围绕整数的不可变包装器:

public class ImmutableInt {
  private final int value;

  public ImmutableInt(int value) {
    this.value = value;
  }

  public int getValue() {
    return this.value;
  }
}

使一个对象不可变只意味着在实例化后它的任何成员都不能更改。您完全可以在Java中通过将实例字段标记为private和final来控制这一点。这将强制在实例化对象时对其进行初始化,并防止在该点之后进行任何进一步的修改


如果您正在寻找一种使Java集合“不可变”的简单方法,请查看Java.util.Collections类,该类提供为可变集合提供只读包装的静态方法

好吧,就这样做吧。有什么问题吗?您在使用什么?不可变映射或列表的和的可能重复请查看
列表。不可修改列表(…)
映射。不可修改映射(…)