我目前正在开发一个执行多个不同功能的程序,但它们都在同一个数组上(由命令行参数组成)。
我正在尝试创建一个将创建数组的函数。目前,我必须在main()的每个if语句中反复输入以下内容:
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]);
当然,我可以把它放在一个我可以在一行内调用的函数中,而不是一遍又一遍地使用它?
任何建议都将不胜感激!
答案 0 :(得分: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;
}
答案 1 :(得分: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
}
答案 2 :(得分:-1)
使用System.arraycopy(args, 0, a, 0, args.length);
请参阅here