Мое предположение (из того, что я видел в groovy где-то еще), заключается в том, что он пытается выяснить, каким должен быть тип для recipientId
, поскольку вы его не указали (и, следовательно, он динамический).
В вашем первом примере groovy решил, что то, что было передано закрытию .each{}
, было List<String>
. Второй пример, поскольку существует только один String
, groovy решает, что тип должен быть String
, а .each{}
знает, как перебирать и String
- он просто конвертирует его в char[]
.
Вы могли бы просто сделать recipientId
a List<String>
Я думаю, что в этом случае.