使用:
two(*persons)
*
将拆分列表并将其元素作为单独的参数传递.
这将是:
def one (Liststrings) { two(strings[0], strings[1], strings[2]) two(*strings) } def two (String firstPerson = null, String secondPerson = null, String thirdPerson = null) { println firstPerson println secondPerson println thirdPerson } one(['a','b','c'])
您可以使用扩展运算符*作为调用方法,但根据您的注释"列表可能包含0个或1个或更多元素",您将需要为第二个方法使用可变参数函数.试试这个:
// Spread operator "*" def one(Listpersons) { two(*persons) } // Variadic function "..." def two(Person... values) { values.each { person -> println person } }
现在,您可以调用传递null,空列表或任意数量的Person实例的两个方法,例如:
two(null) two([]) two(person1, person2, person3, person4, person5)