2013-07-03 52 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 
} 
相關問題