我使用的插件提供如下电子邮件功能:
class SendSesMail {
//to
void to(String ... _to) {
this.to?.addAll(_to)
log.debug "Setting 'to' addresses to ${this.to}"
}
}
文档声明该类的调用如下:
sesMail {
from "from@a.com"
replyTo "reply@a.com"
to "t@a.com", "t@b.com", "t@c.com"
subject "Subject"
html "Body HTML"
}
在代码中建立了List
个地址,我正在试图弄清楚如何将此列表转换为该方法所期望的var args。
转换为与“,”连接的String
不起作用,因为这是无效的电子邮件地址。我需要能够将每个List项分成一个单独的参数,以避免迭代List并单独发送每封电子邮件。
答案 0 :(得分:53)
传播运算符*
可能就是您正在寻找的内容:
def to(String... emails) {
emails.each { println "Sending email to: $it"}
}
def emails = ["t@a.com", "t@b.com", "t@c.com"]
to(*emails)
// Output:
// Sending email to: t@a.com
// Sending email to: t@b.com
// Sending email to: t@c.com
请注意,方法调用to
的括号是必需的,否则to *emails
将被解析为乘法。错误选择重载的语法符号IMO = P