如何使包含一系列Mutable类的类不可变?

时间:2016-10-08 03:18:04

标签: java immutability

我知道如何使类的对象不可变的基本规则。但是,我的要求是这样的。说我有一个叫做学校的课程。学校有可变课堂。房间里有可变班的学生。学生有可变课程表现等。这些类都没有实现Serializable。现在我的要求是让学校学校成为不可变的。另外,如果明天学校有另一个Mutable类链(说另一个可变类的建筑物),我需要保留学校的不变性而不需要太多的代码更改。

我知道这个要求可以导致无限循环,但是说在5级之后,我们可以停止创建新对象以保持不变性。

我们可以在这里使用Reflection吗?或者还有其他方法吗?

1 个答案:

答案 0 :(得分:1)

除了拥有每个类的不可变版本并将它们一直复制下去之外,没有其他替代方法。

这很糟糕。

从一开始就让所有类型都变得更加容易。