-2

我猜java没有“按引用传递”选项。但是为什么呢?因为有时它是非常需要的。

4

3 回答 3

5

任何时候你觉得需要通过引用传递一个值,而不是通过值传递一个引用。虽然 Java 没有“按引用传递”机制,但它确实有引用。所以只需按值传递这些引用。

于 2012-04-15T09:32:18.703 回答
0

我想您真正需要通过引用传递的唯一地方是从函数中返回多个值,例如outC 中的关键字。要在 Java 中执行此操作,您可以创建一个类来保存对象或使用许多提供的现有 Pair 类图书馆。

同样,您可以传递一个引用其他内容的存根对象,然后您可以更改对象中的引用并查看它在外部的反映:

public static class Holder<T> {
    public T value;

    public Holder(T value) {
        this.value = value;
    }
}

private Holder<Object> itsValueCanBeSeenAsPassedByReferencce
= new Holder<Object>("a");

public void doSomething(Holder<Object> holder) {
    holder.value = "b";
}
于 2012-04-15T10:33:19.393 回答
0

在Java 中,无论您传递什么类型的参数,相应的参数(原始变量或对象引用)都会得到该数据的副本,这正是按值传递(即按值复制)的工作原理。在 Java 中,如果调用方法将对象的引用作为参数传递给被调用方法,则传入的引用首先被复制,然后传递给被调用方法。传入的原始引用和复制的引用都将指向同一个对象。因此,无论您使用哪个引用,您都将始终修改相同的原始对象,这也是传递引用的工作方式。

于 2012-04-16T06:33:26.923 回答