2013-07-03 47 views
4

在Java中是否有一种语法来初始化变量列表到数组中的对应对象?有没有办法使用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 
} 

感谢您的建议。 -Daniel

+0

答案是否定的。你可以写一个方法来做到这一点,传入可变对象的声明变量(即不是字符串)和数组。 –

+0

我很困惑你的意思。为什么你不能传递数组并将变量赋值给数组的索引? –

+1

@MarcoCorona OP正在询问更好的(语法)方法来做到这一点。 – feralin

回答

7

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

然而,你也可以这样做:

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

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

+0

可以通过'enum's来完成吗? – NINCOMPOOP

+1

@Idiot你是什么意思? – feralin

+0

谢谢。这可能是一个有用的解决方案,在我的情况下.. –

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 
} 
相关问题