我猜java没有选项“按参考传递”。但为什么?因为有时非常需要它。
答案 0 :(得分:5)
只要您觉得需要通过引用传递值,而是按值传递引用。虽然Java没有“通过引用传递”机制,但它确实有引用。所以只需按值传递这些引用。
答案 1 :(得分:0)
我想你真正需要通过引用传递的唯一地方是从函数中返回多个值,如C中的out
关键字。要在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";
}
答案 2 :(得分:0)
在Java中,无论你是什么类型的论点 传递相应的参数(原始变量或对象引用)将获得该数据的副本,即 确切地说,按值传递(即按值复制)是如何工作的。 在Java中,如果调用方法将对象的引用作为参数传递给被调用的方法,则首先复制传入的引用,然后将其传递给被调用的方法。传入的原始引用和复制的引用都将指向同一个对象。因此,无论您使用哪个引用,您都将始终修改相同的原始对象,这也就是传递引用的工作方式。