我正在使用三个对象:StringBuilder
、Integer
和testobject
- 传递给方法以更改其状态。
正如预期的那样,StringBuilder
andtestobject
指向同一个对象,并且状态发生了变化,但它不适用于Integer
对象。
class testobject{
int x = 1;
}
public class test{
public static void main(String[] args){
StringBuilder s1 = new StringBuilder("String");
go(s1);
System.out.println(s1);
Integer s2 = new Integer("20");
go1(s2);
System.out.println(s2);
testobject s3 = new testobject();
go2(s3);
System.out.println(s3.x);
}
static void go(StringBuilder s1){
s1.append("Builder");
}
static void go1(Integer s2){
s2 = 1;
}
static void go2(testobject s3){
s3.x = 5;
}
结果:
StringBuilder
20
5
预期结果:
StringBuilder
1
5