如果我创建一个变量数组:
public String a;
public String b;
public String c;
public String[] d = {a,b,c};
它将包含{null,null,null};
如果我这样做:
a = "5";
System.out.println(d[0]);
当a
初始化时,输出将为null
为d
。
有没有办法创建“引用数组”,以便在这种情况下输出为5
?
编辑: PLOT TWIST!
代码的第一部分在某个类中。第二部分是在扩展第一部分的类中。
答案 0 :(得分:1)
您可以使用自己的可变类包装String
:
class MyString {
private String value;
public MyString(String value) {
this.value = value;
}
void setValue(String value) {
this.value = value;
}
@Override
public String toString() {
return value;
}
}
现在:
public MyString a = new MyString(null);
public MyString b = new MyString(null);
public MyString c = new MyString(null);
public MyString[] d = {a,b,c};
...
a.setValue("5"); // <--
但是,在调用a
之前,您可能希望确保null
不是setValue()
。