2014-12-07 34 views
-1

我目前正在一個程序執行幾個不同的功能,但都在同一個數組(由命令行參數組成)。簡單的Java函數來創建一個數組

我想創建一個函數來創建一個數組。此刻,我要反覆擺在每個if語句下面的main():

final int N = args.length;  
final long []a = new long [args.length]; 
for (int i = 0; i < N; ++i) 
    a[i] = Long.parseLong (args[i]); 

當然,我可以把這個功能,我可以在一個線路中調用,而不是使用這種過度和再次?

任何建議,將不勝感激!

回答

1

你想創建一個static功能,使您能夠調用它,而無需創建對象的新實例。

static long[] getValues(String[] args){ 
    long []a = new long [args.length]; 
    for (int i = 0; i < args.length; ++i) 
     a[i] = Long.parseLong (args[i]); 
    return a; 
} 

void main(String[] args){ 
    long[] values = getValues(args); 
    //here you call the static function 
    //do some code magic with those values 
} 
+0

如果你可以添加一些文本並解釋你的代碼,那將會很棒。這樣,更多的SO用戶可以獲得收益。 :) – jazzurro 2014-12-08 01:17:40

+0

當然。讓我試着解釋一下 – 2014-12-08 01:45:28

+0

這真是太棒了。這肯定會幫助更多的人。 :) – jazzurro 2014-12-08 02:17:41

-1

使用System.arraycopy(args, 0, a, 0, args.length);

here

+0

雖然此鏈接可能回答問題,但最好在此處包含答案的基本部分並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 – 2014-12-08 02:08:19

+0

好的。感謝您的反饋! – frenchDolphin 2014-12-08 22:05:40

1

嘗試:

public long[] methodName(String[] args){ 
    final int N = args.length;  
    final long[] a = new long [N]; 
    for (int i = 0; i < N; ++i) 
     a[i] = Long.parseLong (args[i]); 
    return a; 
} 
相關問題