gpt4 book ai didi

java - 我可以直接通过 getter 添加到私有(private)列表吗?

转载 作者:行者123 更新时间:2023-12-01 07:00:05 27 4
gpt4 key购买 nike

我意识到我会因为自己不简单地编写测试而受到批评...但我很好奇人们的意见,而不仅仅是功能,所以...这里...

我的类(class)有一个私有(private)列表。我想通过公共(public) getMyList() 方法添加到该私有(private)列表。

那么...这会起作用吗?

public class ObA{
private List<String> foo;
public List<String> getFoo(){return foo;}
}

public class ObB{
public void dealWithObAFoo(ObA obA){
obA.getFoo().add("hello");

}
}

最佳答案

是的,这绝对有效 - 这通常是一件坏事。 (这是因为您实际上返回的是集合对象的引用,而不是集合本身的副本。)

很多时候,您希望提供对集合的真正只读访问,这通常意味着返回集合的只读包装器。将返回类型设置为集合实现的只读接口(interface)并返回实际的集合引用并不能提供太多保护:调用者可以轻松地转换为“真实”集合类型,然后添加而不会出现任何问题。

关于java - 我可以直接通过 getter 添加到私有(private)列表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/895257/

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