次のようなメール機能を提供するプラグインを使用しています。
class SendSesMail {
//to
void to(String ... _to) {
this.to?.addAll(_to)
log.debug "Setting 'to' addresses to ${this.to}"
}
}
ドキュメントには、クラスが次のように呼び出されると記載されています。
sesMail {
from "[email protected]"
replyTo "[email protected]"
to "[email protected]", "[email protected]", "[email protected]"
subject "Subject"
html "Body HTML"
}
コードでは、アドレスのList
が構築されており、このリストをメソッドで期待されるvarargsに変換する方法を理解しようとしています。
「、」と連結されたString
への変換は、これが無効な電子メールアドレスであるため機能しません。リストを繰り返し処理して各メールを個別に送信する必要がないように、各リストアイテムを個別のパラメーターに分割できる必要があります。
おそらくスプレッド演算子、*
、あなたが探しているものです:
def to(String... emails) {
emails.each { println "Sending email to: $it"}
}
def emails = ["[email protected]", "[email protected]", "[email protected]"]
to(*emails)
// Output:
// Sending email to: [email protected]
// Sending email to: [email protected]
// Sending email to: [email protected]
to
へのメソッド呼び出しの括弧は必須であり、そうでない場合はto *emails
は乗算として解析されます。オーバーロードされた文法記号の不適切な選択IMO = P