java引用传递怎么写( 二 )


为了弥补这个缺陷,C#才加入了ref关键字,允许传入变量的引用(如果参考C/C++,C#传递的实际是二级指针,它的内容是栈中的变量的地址) 。
5. java怎么实现传递引用 import java.util.*;import java.text.*;import java.lang.reflect.*;public class test{ public static void main(String[] args) throws Exception { String abc = "yourname"; System.out.println(abc); upper(abc); System.out.println(abc); Integer i = 3; change(i); System.out.println(i); }//当然如果对象作为参数要改变他内部状态的话,该对象必须是mutable的,如果是String那么是无法被改变的//Integer同样是immutable的,不过可以通过反射来改变immutable的状态 public static void change(Integer x) throws Exception { f = abc.getClass().getDeclaredField("value"); f.setAccessible(true); //需要改变内部状态成mutable. f.setInt(x,x+1); } public static void upper(String str) throws Exception { Field f = str.getClass().getDeclaredField("value"); f.setAccessible(true); //需要改变内部状态成mutable. char[] ch = (char[])f.get(str); for(int i=0;i ='a' && ch[i] <='z') ch[i] = (char)(ch[i] + ('A'-'a')); }} 。
6. Java里面怎么解决引用类型传递 Java不支持引用传递 。没有形参,只有实参 。不过可以做一些类似引用类型传递的效果 。
Student stu = new Student();
method(stu);
System.out.println(stu.getName());
这个methods方法可以对stu进行处理,比如stu.setName() 。经method处理过后的stu对象可以在method返回后改变其内部的值 。
java仅能做到这里了 。实际上,这仍不是引用传递 。
【java引用传递怎么写】

java引用传递怎么写

文章插图