public class Test{
public static void add3(Integer i){
int val = 0;
val = i.intValue();
val+=3;
i=new Integer(val);
}
public static void main(String args[]){
Integer i=new Integer(0);
add3(i);
System.out.println(i.intValue());
}
}
public static void add3(Integer i){
int val = 0;
val = i.intValue();
val+=3;
i=new Integer(val);
}
public static void main(String args[]){
Integer i=new Integer(0);
add3(i);
System.out.println(i.intValue());
}
}
我怀疑楼主可能把作为参数的句柄理解为C++里的引用了
如果是C++,如下代码确实是会改变i的值的void add3(int& i){
i = 3;
}
内置变量是值传递(int、char...)
对象是引用传递
要想得到3,可以public class Test{
static Integer i=new Integer(0);
public static void add3(Integer b){
int val = 0;
val = b.intValue();
val+=3;
i=new Integer(val);
}
public static void main(String args[]){
add3(i);
System.out.println(i.intValue());
}
}