有没有办法在Java中使用数组初始化变量列表?

时间:2013-07-03 17:42:58

标签: java arrays list syntax initialization

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

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

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

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

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

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

method(array);

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

感谢您的建议。 -Daniel

2 个答案:

答案 0 :(得分:7)

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

但是,你也可以这样做:

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

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

答案 1 :(得分:0)

  

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

这似乎是您应该使用对象而不是数组的情况。特别是因为在您的示例中,您似乎使用数组来表示具有两个字段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
}