gpt4 book ai didi

java - 调用方法并传递对象引用并使用相同的引用捕获返回

转载 作者:搜寻专家 更新时间:2023-10-31 20:01:58 24 4
gpt4 key购买 nike

我有一个初学者问题。我搜索了很多答案,但似乎找不到确切的答案,所以也许更有经验的开发人员可以帮助我解决这个问题。

那么,假设您在代码中遇到以下情况(这是该情况的简化版本):

SomeObject a1 = new SomeObject();
a1 = someMethod(a1);

public SomeObject someMethod(SomeObject a1) {
a1.changeVariable();
return a1;
}

现在我听几个人说,将对对象的引用传递给方法并捕获返回值是糟糕的编码习惯。不幸的是,没有人能准确地向我解释为什么这是糟糕的编码习惯,而我对原因的搜索也一无所获。有人可以解释为什么这样做是不好的做法吗?我想不出会出现问题的情况。

提前致谢,你们这些好人已经无数次帮助我回答其他人的问题,这是我第一次真正需要发布问题:)

最佳答案

在您展示的场景中,没有太多明显的好处。但是,作为一种模式,它可以在我的经验中很有用 - 特别是如果该方法执行验证。

Guava 的 Preconditions.checkNotNull方法就是一个很好的例子。这意味着我可以编写这样的代码:

public class Player {
private final String name;

public Player(String name) {
this.name = Preconditions.checkNotNull(name);
}
}

... 而不是必须拆分分配和验证。它还允许验证作为另一个调用的一部分存在,例如给另一个构造函数:

super(Preconditions.checkNotNull(name));

关于java - 调用方法并传递对象引用并使用相同的引用捕获返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27440098/

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