我是C#的新成员,我清楚地知道“Java始终是按值传递的。”
但是当我们想从一个方法获得多个输出时,传递引用很有用。
我们如何从java中的一个方法获得多个输出,如在C#中。
我知道一种方法 - 使用通用包装类,并从字段中获取值。
class Wrapper<T> {
public Wrapper(T value) {
Value = value;
}
public T Value;
}
还有另一种方法可以实现这种效果吗?
答案 0 :(得分:3)
不,Java没有 out 参数。您可以传递方法要修改的对象引用以假装它具有 out 参数,但这通常不是最佳设计并且遇到其他问题(多线程和可变状态)。
实现返回多个值的方法的最佳方法是让方法返回包含多个值的类型。
答案 1 :(得分:1)
在Java中通过引用模拟调用的另一种方法是将一个元素数组作为参数传递。