【问题标题】:Java assigning a new value to a parameter, is this considered a bad practice?Java为参数分配新值,这被认为是一种不好的做法吗?
【发布时间】:2011-02-27 14:20:26
【问题描述】:

我在这里阅读了这个问题:Is it problematic to assign a new value to a method parameter?。但是,我不清楚是否执行以下操作:

public void myMethod(Object obj) {
    doSomething(obj);
    obj = getNewObj();
}

或:

public void anotherMethod(Object obj) {
     obj = doSomething(obj):
}

这基本上只是为了避免声明一个新的局部变量,这值得吗?这是否被视为一种不好的做法?

【问题讨论】:

  • 我想你明白这一点,但可以肯定的是:在你的两个示例方法中,对 obj 的分配根本没有完成任何事情,因为新对象后来没有在方法中使用。跨度>
  • 是的,我知道,但感谢您的评论。

标签: java parameters variable-assignment


【解决方案1】:

这是一种不好的做法。您将很难找到牺牲可读性值得的场景。对于不了解 Java 的“按价值传递”政策的人来说,这将特别令人困惑,可悲的是很多人。

【讨论】:

  • 从哪个人群中抽取的“很多人”?我认为这在很大程度上取决于上下文。重要的是继承我的代码的人的能力水平。在专业环境中编写代码时,我认为假设我的继任者知道如何传递方法参数是合理的。相比之下,我不会假设在将代码作为教程的一部分发布在游戏编程网站上时。
  • @meriton,我发现对于可能在专业领域非常有经验但对 Java 很陌生并且来自传递引用语言背景的程序员来说确实如此(至少在它是一种选择的情况下) .
  • @meriton 我在一家大公司工作,遇到过很多不了解这个概念的专业 Java 开发人员。我不是想宽恕它,但在很多公司它是现实。
  • @meriton 我同意你的观点,假设你的继任者会理解基本的 Java 概念是公平的,但我只是看不到这种特殊情况下的回报。
猜你喜欢
  • 1970-01-01
  • 2013-12-08
  • 1970-01-01
  • 2017-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-09
相关资源
最近更新 更多