如何在java中通过引用传递对象?
我做了很多研究,但只发现java不能通过引用传递对象。但是,System.arraycopy如何更改所提供数组的值。System.arraycopy更改数组的内容,而不是对象/引用本身。作为输入参数包含的数组必须在方法外部声明。我不知道pass对象的确切含义。 如果您的意思是调用函数并将对象作为参数传递。然后在Java中,任何对象都以引用的形式传递。这意味着,如果在调用的函数中修改该对象,即使函数返回,修改也会生效。System.arraycopy更改数组的内容,而不是确切的数组。但是,可以编写指针类如何在java中通过引用传递对象?,java,Java,我做了很多研究,但只发现java不能通过引用传递对象。但是,System.arraycopy如何更改所提供数组的值。System.arraycopy更改数组的内容,而不是对象/引用本身。作为输入参数包含的数组必须在方法外部声明。我不知道pass对象的确切含义。 如果您的意思是调用函数并将对象作为参数传递。然后在Java中,任何对象都以引用的形式传递。这意味着,如果在调用的函数中修改该对象,即使函数返回,修改也会生效。System.arraycopy更改数组的内容,而不是确切的数组。但是,可以编写
实际上,您根本无法传递对象。请看一看。当您读取数组的所有数据并将其放入新创建的数组中时,您认为会发生什么?Java只允许作为引用传递对象。混淆点在于引用是按值传递的。实际上,在Java中,所有内容都是按值传递的。。即使引用也是按值传递的。。
public class Pointer<T>{
private T value;
public Pointer(T value){
this.value = value;
}
public T get(){
return value;
}
public void set(T value){
this.value = value;
}
}
Pointer<SomeClass> pointer = new Pointer<>(theObject);
pointer.set(otherObject);
theObject = pointer.get();
SomeClass[] pointer = new SomeClass[]{ theObject };
pointer[0] = otherObject;
theObject = pointer[0];