【问题标题】:Passing arguments by reference Java通过引用传递参数 Java
【发布时间】:2017-09-25 07:00:34
【问题描述】:

我知道 C# 中存在“out”关键字,用于在方法中通过引用传递参数。 Java 中是否存在等效的“out”关键字(用于通过引用传递参数)?

【问题讨论】:

标签: java reference arguments parameter-passing pass-by-reference


【解决方案1】:

Java 中的等价物是使用一个对象来保存引用,以便可以返回它。这是相对难看的,最好避免,但如果你想要一对一的翻译,你可以做类似的事情。

 ReturnValue method(out int arg, out String x);

翻译成

 int[] argRef = { arg };
 String[] xRef = { x };
 // call to
 ReturnValue method(int[] argRef, String[] xRef);

 arg = argRef[0];
 x = xRef[0];

【讨论】:

  • “丑陋”不是一个工程术语,但是,你为什么要这么称呼它?我不应该质疑情绪,我知道,但我很好奇。持有者对象无处不在且有用。有些人可能会觉得 Java 的简单方法很可爱。还是您将数组显示为持有者,而不是您认为“丑陋”的正确持有者对象?我同意使用数组比使用持有人类型更不习惯和直接。
【解决方案2】:

不,据我所知,Java 中不存在类似的东西。

但是,对于大多数类型(如 Integer),都有可用的包装类,您可以将其用作参数。然后你就有了你使用的对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-07
    • 2011-08-21
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多