【问题标题】:Java: Passing a reference to a variable as an argument for a methodJava:将变量的引用作为方法的参数传递
【发布时间】:2012-11-13 04:41:13
【问题描述】:

将对象作为方法的参数传递时,方法内部参数发生的所有更改也会影响“原始”对象。那是因为参数是对对象的引用。

但我也想对变量做同样的事情——我希望方法内部发生的所有变化都会影响“原始”变量。但我不知道怎么做。我想这样做,因为有时需要以相同的方式处理多个局部变量。

如何将变量的引用作为方法的参数传递?

【问题讨论】:

  • 方法中的局部变量以同样的方式工作。最好展示一个你正在尝试做的事情的样本。此外,Java 从不通过引用传递,仅通过值传递。
  • @Keyser 这不是一个好建议 =\.
  • @LuiggiMendoza 有点真实:p 但它有效。传递对象并不总是正确的选择。
  • @Keyser 有效并不意味着它是最好的解决方案。

标签: java methods reference arguments argument-passing


【解决方案1】:

除了将变量存储在对象中并传递对象之外,别无选择。在 Java 中,所有参数都是按值传递的。

对象可以是this(即变量实际上是当前对象的一个​​字段)。

【讨论】:

  • 那么猜猜这样做是个好主意:variable = processVariable(variable);?
  • 你当然可以这样做。但它只适用于一个变量。
【解决方案2】:

你能澄清一下“变量”这个词是什么意思吗?您是指方法内部的本地引用、传入的原语还是其他?

Java 引用和原语是按值传递的。无论您多么想改变它们,您都无法改变它们。

【讨论】:

  • 变量是指原始整数、双精度等
  • 不能用 Java 改变。你需要另一种语言。
猜你喜欢
  • 2018-09-03
  • 1970-01-01
  • 2016-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-24
  • 1970-01-01
相关资源
最近更新 更多