Groovy参数"字符串......"

时间:2015-07-16 21:15:34

标签: groovy

我正在为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"}
}

1 个答案:

答案 0 :(得分:1)

这是一个名为varargsGroovy 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)。