gpt4 book ai didi

java - 如何使非原始类成员不可变

转载 作者:行者123 更新时间:2023-11-29 03:19:52 24 4
gpt4 key购买 nike

我有一个小问题,请告诉我这是否正确。

在使类不可变时,我有一个非原始成员。我怎样才能使该成员不可变。虽然在它自己的实现中它不是不可变的,例如

public Class A{
private final int immutableInt;
private final String immutableString;
private final Employee toBeMadeImmutable

// individual getters

}

不,如果对“toBeMadeImmutable”使用 setter/getter ,我会得到它的对象,我可以用那个对象做任何事情,所以它是可变的,这不是必需的。

如何实现非原始成员的不变性

最佳答案

Java 不提供对不变性的内置支持。

您可以通过将字段的 setter 设置为私有(private) 并仅将其 getter 公开为公共(public) 方法来使字段不可变。

此外,不能通过将变量声明为 final 来实现不变性。通过将变量声明为 final,您指定您不会更改引用指向的对象。您仍然可以更改引用指向的对象的状态(通过更改其字段)。

关于java - 如何使非原始类成员不可变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24311661/

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