我想知道是否可以通过更改我用来填充它们的变量来更改多个数组的值。
这是一个例子:
String firstArg = "?a";
String secondArg = "?b";
String[] action = { "jump", firstArg, secondArg }
String[] action2 = { "run", secondArg, firstArg }
vector 在第一时间会像这样:
Action { "jump", "?a", "?b" }
Action { "run", "?b", "?a" }
现在我想做这样的事情:
firstArg = "k";
现在我的 vector 应该是这样的:
Action { "jump", "k", "?b" }
Action { "run", "?b", "k" }
这可能吗?我试过了,但 vector 的值没有改变,我知道 Java 不是 C,它不像指针那样工作。
但我想可能有办法做到这一点……怎么做?
提前致谢;)
最佳答案
没有 Java 语法可以实现您想要的 - 更改一个变量引用的对象会更改其他变量引用的对象。
您可以通过创建和使用您自己的对象来引用相关字符串来模拟这一点。
public class StringHolder {
private String myString;
public StringHolder(String string) {
myString = string;
}
public void setString(String string) {
myString = string;
}
public String getString() {
return myString;
}
}
然后您可以拥有 StringHolder
对象的数组。
StringHolder firstArg = new StringHolder("?a");
StringHolder secondArg = new StringHolder("?b");
StringHolder[] action = { new StringHolder("jump"), firstArg, secondArg }
StringHolder[] action2 = { new StringHolder("run"), secondArg, firstArg }
firstArg.setString("k");
您必须调用 getString()
才能再次获取字符串,但是因为 firstArg
与 action
中的对象相同,并且在 action2
中,修改它会实现您的结果。
关于java - 使用外部变量更改数组的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24002752/