Я получаю следующее сообщение об ошибке - groovy.lang.MissingMethodException: Нет подписи метода: Script64 $ _run_closure5_closure7_closure8_closure9_closure10_closure11.doCall() применяется для типов аргументов: (java.lang. String): Возможные значения решения: doCall (java.lang.Object, java.lang.Object), isCase (java.lang.Object), isCase() ошибка в строке java.lang.Object:groovy.lang.MissingMethodException: Нет подписи метода
Code - EDIT
import groovy.xml.*
List tempList = []
List listgenerated = []
def count = 0
for (a in 0..totalCount-1)
{
//nameList and valueList lists will have all the contents added as below commented pseudo code
/*for (b in 0..50)
{
nameList.add(b,number) // number is some calculated value
valueList.add(b,number)
e.g. nameList=[name1, name2, name3,name4, name5]
valueList =[val1, val2, val3, , val5]
listgenerated should be = [[name1:val1, name2:val2], [name3:val3, name4: , name5:val5]]
} */
tempList = []
for (j in count..nameList.size())
{
count = j
def nameKey = nameList[j]
def value
if (nameKey != null)
{
value = valueList[j]
tempList << [(nameKey) : value]
}
}
count = count
listgenerated.putAt(a,tempList)
number = number +1
}
def process = { binding, element, name ->
if(element[ name ] instanceof Collection) {
element[ name ].each { n ->
binding."$name"(n)
}
}
else if(element[ name ]) {
binding."$name"(element[ name ])
}
}
class Form {
List fields
}
def list = [[ name:'a', val:'1' ], [ name:'b', val :'2', name2:4, xyz:'abc', pqr:'']] //Edited list
f = new Form(fields: list) //Works fine
f = new Form(fields: listgenerated) //Gives the above error
String xml = XmlUtil.serialize(new StreamingMarkupBuilder().with { builder ->
builder.bind { binding ->
data {
f.fields.each { fields ->
item {
fields.each { name, value ->
process(binding, fields, name)
}
}
}
}
}
})
Если при создании «генерируемых списком» одинарные кавычки добавляются вокруг значений, они воспринимают его как символ, а при печати оба списка кажутся разными. Я не могу понять, что именно происходит. Любая помощь приветствуется. Благодарю. Ref - Groovy: dynamically create XML for collection of objects with collections of properties
Спасибо за быстрый ответ Тим. Но когда я добавляю карту в список, она генерируется как listgenerated = [[[name1: val1], [name2: val2]], [[name3: val3]]] , и я получаю там же ошибку. Если мой список сгенерирован как - listgenerated = [[name1: val1], [name2: val2], [name3: val3]] он отлично работает, но мое требование равно listgenerated = [[name1: val1, name2: val2], [имя3: val3]]. Как я могу сгенерировать первый список, добавив карту в список, как указано выше. – user2239090
@ user2239090 Вы можете изменить свой вопрос, чтобы ваш код действительно делал то, что вы говорите? Я не могу запустить выше, поскольку вещи не хватает –
Привет, Тим, я отредактировал мой вопрос, чтобы добавить недостающий код. Спасибо за вашу помощь. – user2239090