gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 09:24:47 24 4
gpt4 key购买 nike

我知道如何使类的对象不可变的基本规则。然而,我的要求是这样的。假设我有一个名为 School 的类(class)。学校有可变的类(class)房间。房间有可变的类(class)学生。学生有可变的类(class)表现等。这些类都没有实现可序列化。现在我的要求是使 School 类不可变。另外,如果明天 School 有另一个可变类链(比如说另一个可变类大楼),我需要保留 School 的不变性,而无需更改太多代码。

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

我们可以在这里使用反射吗?或者还有其他办法吗?

最佳答案

除了为每个类提供不可变版本并一直向下复制它们之外,没有真正的替代方案。

这会很糟糕。

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

关于java - 如何使包含一系列可变类的类不可变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39928328/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com