public class TestInnerClass {
public static void populateVal(InnerClassA a) {
if(a == null) {
a = new InnerClassA();
}
a.setId(1);
a.setName("aa");
}
public static class InnerClassA {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "InnerClassA{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
}
public class MyTest {
public static void main(String[] args) {
test1();
}
private static void test1() {
TestInnerClass.InnerClassA aCla = null;
set(aCla);
System.out.println(aCla);
myprint(aCla);
}
private static void myprint(TestInnerClass.InnerClassA aCla) {
System.out.println(aCla);
}
public static void set(TestInnerClass.InnerClassA aCla) {
TestInnerClass.populateVal(aCla);
}
}
// 输出
null
null
// 可解决
TestInnerClass.InnerClassA aCla = new TestInnerClass.InnerClassA();
Java引用传递问题
于 2022-05-11 17:42:09 首次发布