我正在为Web应用程序实施单元测试,并且我遇到了这段代码(和其他一些代码),其参数为" String ...& #34;我不确定" ..."意味着,如果有的话,因为我无法在任何地方找到任何解释。
public static List<User> getUsersForGroups(String... dns) {
Set<String> members = getMembers(dns)
return members.collect{ getUser(it) }.findAll{ it }.sort{ User u -> "$u.lastName $u.firstName"}
}
答案 0 :(得分:1)
这是一个名为varargs,Groovy also supports it的Java功能。它允许方法接受多个参数,而不会使调用者首先将它们打包到数据结构中。在传递给方法之前,参数被捆绑到一个数组中:
groovy:000> def foo(String... stuff) {
groovy:001> println(stuff.class)
groovy:002> for (s in stuff) {
groovy:003> println(s)
groovy:004> }}
===> true
groovy:000> foo('a','b','c','d')
class [Ljava.lang.String;
a
b
c
d
===> null
groovy:000> foo('q')
class [Ljava.lang.String;
q
===> null
class [Ljava.lang.String;
表示它是一个数组(而不是java.util.ArrayList
)。