如果我创建一个变量数组:
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]);
输出将为 null,因为初始化 d
时,a
为 null
。
有没有办法创建“引用数组”,以便本例中的输出为 5
?
编辑: 情节扭曲!
代码的第一部分位于某个类中。第二部分位于扩展第一部分的类中。
最佳答案
您可以使用自己的可变类包装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"); // <--
但是,在调用 setValue()
之前,您可能需要确保 a
不为 null
。
关于java - 数组引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20166718/