gpt4 book ai didi

java - 如何在 Java 类中实现 Collection 字段的 getter/setter?

转载 作者:行者123 更新时间:2023-12-02 06:30:48 29 4
gpt4 key购买 nike

我正在创建一个包含列表的 JavaBean,并且可以想到两种可能性:

public class JavaBeanWithSettableList {
private List<Integer> list;
public List<Integer> getList {
return list;
}
public void setList(final List<Integer> list) {
this.list = list;
}
}

...或者...

public class JavaBeanWithUnsettableList {
private List<Integer> list = new ArrayList<Integer>();
public List<Integer> getList {
return this.list;
}
// No setter - need to use list.add(), list.remove() etc.
}

我在另一个项目中看到的第二个 - 它看起来更好,但我不确定这个设计来自哪里。有人能给我指点一篇命名该模式和/或描述其优点的文章吗?

最佳答案

此模式没有名称。第一个只是一个带有 List 的类,第二个是内部创建的列表。

通常,类中的状态越少、不变性越多越好。这样做的原因是,如果状态较少,则产生错误的可能性较小。

在您的情况下,例如,如果您使用第一种方法,那么您无法确保其他人没有为您的模型设置另一个列表。在第二种情况下,您无法确保有人不会调用您列表中的 clear()

最终,这一切都取决于您的用例。如果您希望您的类保存一个列表,但您不希望将来发生任何更改,您应该使用不可变列表。否则,尽可能限制可变性。

关于java - 如何在 Java 类中实现 Collection 字段的 getter/setter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20073123/

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