gpt4 book ai didi

java - 哪个是好的做法 - 在方法中修改列表,或在方法中返回一个新列表?

转载 作者:太空狗 更新时间:2023-10-29 22:54:00 25 4
gpt4 key购买 nike

示例代码:

modifyMyList(myList);

public void modifyMyList(List someList){
someList.add(someObject);
}

或:

List myList = modifyMyList(myList);

public List modifyMyList(List someList){
someList.add(someObject)
return someList;
}

我相信还有第三种选择:您可以在 modifyMyList 方法中创建一个新列表并返回这个新列表...

(第三个选项在这里,我太懒了,但有人已经在答案中添加了它:)

List myList = modifyMyList(myList);

public List modifyMyList(List someList){
List returnList = new ArrayList();
returnList.addAll(someList);
returnList.add(someObject);
return Collections.unmodifiableList(returnList);
}

为什么我应该选择一个而不是另一个?这种情况应该考虑什么?

最佳答案

我有一个(自己强加的)规则,即“永远不要改变公共(public)方法中的方法参数”。因此,在私有(private)方法中,改变参数是可以的(我什至也尽量避免这种情况)。但是当调用一个公共(public)方法时,参数永远不应该被改变并且应该被认为是不可变的。

我认为改变方法参数有点老套,会导致更难发现的错误。

众所周知,我会对此规则做出异常(exception)处理,但我需要一个非常好的理由。

关于java - 哪个是好的做法 - 在方法中修改列表,或在方法中返回一个新列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21700467/

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