gpt4 book ai didi

java - 使对象不可变的可能方法

转载 作者:行者123 更新时间:2023-11-29 09:58:25 26 4
gpt4 key购买 nike

我正在寻找一些构建不可变类的有效方法,就像 Java 的 String 类一样。

最佳答案

  1. 所有字段必须是private 最好是 final
  2. 确保类(class)不能覆盖 - 使类(class)成为 final类,或者使用静态工厂并保持私有(private) build 师
  3. 字段必须从 build 者/工厂
  4. 不要为字段
  5. 注意 Collection 。使用Collections.unmodifiable*。此外,集合应仅包含不可变对象(immutable对象)
  6. 所有的 setter/getter 必须提供不可变对象(immutable对象)或使用 defensive copying
  7. 不要提供任何方法改变内部状态对象。

Tom Hawtin指出 final 可以是可选的。 String class 有一个缓存 hash 变量,只有在调用哈希函数时才赋值。

关于java - 使对象不可变的可能方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1017140/

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