【发布时间】:2015-05-15 19:09:24
【问题描述】:
除了以下之外,还有什么其他方法可以使下面的类不可变。
- 没有二传手
- 所有字段都是私有的和最终的
-
类被声明为final,因此子类中的方法不能被覆盖
public final class ImmutableClass { private final String name; private final List<Integer> listOfNumbers; public ImmutableClass(String name, List<Integer> listOfNumbers) { this.name = name; this.listOfNumbers = listOfNumbers; } public String getName() { return name; } public List<Integer> getListOfNumbers() { return listOfNumbers; } }
【问题讨论】:
-
this.listOfNumbers = Collections.unmodifiableList(new ArrayList<>(listOfNumbers)); -
您的列表是可变的。返回一个不可变的版本或副本。
标签: java immutability