该代码已经可以正常工作了.该args
参数parse
已经是类型String[]
-的String...
语法只是意味着编译器允许转换这样的:
parse("foo", "bar", "baz");
成
parse(new String[] { "foo", "bar", "baz" });
含蓄.如果传递的值已经是字符串数组,则不需要执行任何操作.
JLS没有专门针对此的部分,但第8.4.1节(方法形式参数)有很多关于变量arity方法的信息,包括:
变量arity方法的调用可能包含比形式参数更多的实际参数表达式.将评估与变量arity参数之前的形式参数不对应的所有实际参数表达式,并将结果存储到将传递给方法调用的数组中(第15.12.4.2节).