Java实现C#的ref的原理

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参数,但是不太清楚他的内部原理,请有了解的朋友指导一下,谢谢!

阅读 2.3k
1 个回答

然而你并没有实现ref也不可能实现ref
java(目前)根本没有这个功能

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题