如何使 class 包含一系列可变 classes 不可变?

How to make a class containing series of Mutable classes Immutable?

我知道如何使 class 对象不可变的基本规则。但是,我的要求是这样的。假设我有一个名为 School 的 class。学校有可变 class 个房间。房间有可变 class 学生。学生有可变 class 表现等。 None 的 classes 实现可序列化。现在我的要求是让 class School immutable.Also,如果明天 School 有另一个 Mutable class 链(比如另一个可变 class Building),我需要保留 School 的不变性没有太多代码更改。

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

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

除了每个 class 的不可变版本并一直向下复制它们之外,没有真正的选择。

这会很糟糕。

从一开始就使所有类型不可变要容易得多。