使用外部变量更改数组的内容

时间:2014-06-02 20:31:19

标签: java arrays string variables vector

我想知道是否可以通过更改用于填充它们的变量来更改多个数组的值。

以下是一个例子:

String firstArg = "?a";
String secondArg = "?b";

String[] action = { "jump", firstArg, secondArg }
String[] action2 = { "run", secondArg, firstArg }

第一时间,矢量就像这样:

Action { "jump", "?a", "?b" }

Action { "run", "?b", "?a" }

现在我想做这样的事情:

firstArg = "k";

现在我的载体将是这样的:

Action { "jump", "k", "?b" }

Action { "run", "?b", "k" }

这可能吗?我试过但是矢量的值没有改变,我知道Java不是C,它不像指针那样工作..

但我想可能有办法做到这一点......怎么样?

提前多多谢谢;)

1 个答案:

答案 0 :(得分:4)

没有用于实现所需内容的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()再次获取字符串,但由于firstArgactionaction2中的对象相同,因此修改它会实现你的结果。