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

标签 java arrays string variables vector

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

这是一个例子:

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() 才能再次获取字符串,但是因为 firstArgaction 中的对象相同,并且在 action2 中,修改它会实现您的结果。

关于java - 使用外部变量更改数组的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24002752/

相关文章:

java - 为什么java有StringBuilder或者StringBuffer?

java - 将十进制数转换为其补码的输出

java - 显示分数后关闭 Activity

java - 使用 Java 在 Mac 上以编程方式发送电子邮件(通过 Mac 邮件客户端)

java - Eclipse Java 员工电话程序

javascript - 将 Javascript 数组组合成键值查找

java - System.getProperty ("user.dir")当我在stepDefinitions文件中调用时给我eclipse pah

php - 访问关联数组 php pdo 时出现问题

javascript - 如何用http请求的响应填充数组?

python - 正则表达式检查字符串是否为数字