public class Main {
public static void main(String\[\] args) {
Person person1 \= new Person();
PersonWrapper person1Wrapper \= new PersonWrapper(person1);
System.out.println(person1.toString());
System.out.println(person1Wrapper.person.toString());
//分别改变包装类和本类的对象引用
changePerson(person1);
changePersonWrapper(person1Wrapper);
System.out.println(person1.toString());
System.out.println(person1Wrapper.person.toString());
}
private static void changePersonWrapper(PersonWrapper personWrapper) {
personWrapper.person \= new Person();
}
private static void changePerson(Person person){
person \= new Person();
}
}
class Person{}
class PersonWrapper{
public Person person;
public PersonWrapper(Person person){
this.person \= person;
}
}
我通过这种方式实现了类似C#的ref参数,但是不太清楚他的内部原理,请有了解的朋友指导一下,谢谢!
然而你并没有实现ref也不可能实现ref
java(目前)根本没有这个功能