public class Test
{
boolean getInt(int i) {
//做不到。
return true;
}
boolean getInteger(Integer i) {
int thePara=i.intValue;
thePara=thePara+100*11;
i=new Integer(thePara);
return true;
}
public static void main(String[] args) {
Test test = new Test();
int i = 0;
Integer it = new Integer(0);
test.getInt(i);
test.getInteger(it); System.out.println(i);
System.out.println(it);
}
}
{
boolean getInt(int i) {
//做不到。
return true;
}
boolean getInteger(Integer i) {
int thePara=i.intValue;
thePara=thePara+100*11;
i=new Integer(thePara);
return true;
}
public static void main(String[] args) {
Test test = new Test();
int i = 0;
Integer it = new Integer(0);
test.getInt(i);
test.getInteger(it); System.out.println(i);
System.out.println(it);
}
}
System.out.println(i);
System.out.println(it);
两句在执行完函数调用后能输出非0值,即int i和Integer it通过函数调用被修改了。
难道真的做不到?如果连这个都做不到,Java的参数传递机制就太成问题了。
如果在不同的类里面,将要传入并且修改的对象声明成static,应该就可以了。
{
int i=0;//将变量的声明放在这里,而不是函数的内部
Integer it=0;
boolean getInt(int i) {
return true;
}
boolean getInteger(Integer i) {
return true;
}
public static void main(String[] args) {
Test test = new Test();
i = 0;//将这里原来的int i的int去掉
it = new Integer(0);
test.getInt(i);
test.getInteger(it); System.out.println(i);
System.out.println(it);
}
}