当前位置:  开发笔记 > 编程语言 > 正文

将对象列表作为单个参数传递

如何解决《将对象列表作为单个参数传递》经验,为你挑选了2个好方法。



1> Opal..:

使用:

two(*persons)

* 将拆分列表并将其元素作为单独的参数传递.

这将是:

def one (List strings) {
    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'])


太好了!这几乎是正确的,但如果只有两个参数怎么办?一个(['a','b']).biniam希望将null作为缺失的.幸运的是,Groovy中有默认参数,因此完整的解决方案将是两个(String firstPerson = null,String secondPerson = null,String thirdPerson = null)

2> dspano..:

您可以使用扩展运算符*作为调用方法,但根据您的注释"列表可能包含0个或1个或更多元素",您将需要为第二个方法使用可变参数函数.试试这个:

// Spread operator "*"
def one(List persons) {
  two(*persons)
}

//  Variadic function "..."
def two(Person... values) {
  values.each { person ->
    println person
  }
}

现在,您可以调用传递null,空列表或任意数量的Person实例的两个方法,例如:

two(null)
two([])
two(person1, person2, person3, person4, person5)

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有