2014-12-07 80 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; 
} 
相关问题