|
|
1
3
|
|
|
2
1
我会第一次尝试修改一下。 您可以通过一个包含所有getter的接口来定义不可变的。可变类实现不可变接口,并包含所有必需的set方法,而不需要接口指定这些方法。在代码中,只能通过不可变接口访问实例。 此外,创建(并修改)实例后,可以使用seal()方法来密封实例。无论何时调用set方法,都要检查实例是否未密封。这可能有助于防止修改(或者在大团队中工作时)。 |
|
|
3
1
正确的方法通常是有三个类和/或接口:ReadableFoo、ImmutableFoo和MutableFoo。后两个独立于第一个,这意味着当需要ReadableFoo时可以使用其中一个,但是当需要ImmutableFoo时只能使用ImmutableFoo,同样地,对于MutableFoo也是如此。ReadableFoo包含CloneAsMutable、AsMutable和AsImmutable的方法可能会有所帮助。CloneAsMutable将始终使用从原始对象复制的属性创建新的可变对象。在ReadableFoo上调用AsMutable和AsImmutable将返回原始对象(如果它是所需的类型)或包含从原始对象复制的数据的新对象(如果它不是)。 |
|
|
4
0
在我看来,你提到的两种可能性都是解决问题的有效方法。关于第一种方法:我假设你指的是接口
|
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |