【问题标题】:Is there a way to initialize a list of variables using an array in Java?有没有办法在 Java 中使用数组初始化变量列表?
【发布时间】:2013-07-03 17:42:57
【问题描述】:

Java 中是否有将变量列表初始化为数组中对应对象的语法?

String hello, world;
String[] array = {"hello", "world"};

//I want:
{hello, world} = array;

//instead of:
hello = array[0];
world = array[1];

我想我记得 Matlab 中的这种方便的语法,但我没有注意到在 Java 中实现这一点的方法。这种语法将帮助我组织我的代码。具体来说,我想在一个函数中输入一个对象数组,而不是多个参数中的每个数组成员,然后通过在方法范围内声明变量以对数组成员进行命名访问来开始该方法的代码.例如:

String[] array = {"hello", "world"};

method(array);

void method(array){
   String {hello, world} = array;
   //do stuff on variables hello, world
}

感谢您的建议。 -丹尼尔

【问题讨论】:

  • 答案是否定的。您可以编写一个方法来执行此操作,传入可变对象的声明变量(即不是字符串)和一个数组。
  • 我很困惑你的意思。为什么不能传递数组并将变量分配给数组的索引?
  • @MarcoCorona OP 正在询问一种更好的(语法上)方法来做到这一点。
  • 感谢您的回答和想法。可变对象方法对我来说可能比仅在数组上使用索引更麻烦..

标签: java arrays list syntax initialization


【解决方案1】:

不,除了你已经给出的答案之外,在 Java 中没有办法做到这一点,即分别初始化每个变量。

但是,您也可以执行以下操作:

String[] array = { "hello", "world" };
final int HELLO = 0, WORLD = 1;

然后使用array[HELLO]array[WORLD] 任何你会使用变量的地方。这不是一个很好的解决方案,但是,Java 通常是冗长的。

【讨论】:

  • @DanielNaftalovich 没问题!
【解决方案2】:

具体来说,我想将对象数组输入函数 在单个参数中,而不是数组中的每个成员 多个参数

这似乎是您应该使用对象而不是数组的情况。特别是因为在您的示例中,您似乎使用数组来表示具有两个字段的对象,helloworld

class Parameters {
  String hello;
  String world;

  public Parameters(String hello, String world) {
    this.hello = hello;
    this.world = world;
  }
}

//...
Parameters params = new Parameters("hello", "world");
method(params);
//...

void method(Parameters params) {
  // do stuff with params.hello and params.world
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 2020-10-10
    • 2022-01-02
    • 2021-06-12
    • 1970-01-01
    相关资源
    最近更新 更多