我有一个字符串列表如下。
List l = ["1","2","3"]
我有一个如下课程。
class person {
String name
}
我想从List l。
创建一个person对象列表我尝试过使用groovy list collect,但我无法这样做。
这是我的代码。
class testJsonSlurper {
static void main(String[] args) {
List l = ["1","2","3"]
def l2 = l.collect { new person(it) }
println(l2)
}
}
但我得到了以下错误。
Exception in thread "main" groovy.lang.GroovyRuntimeException: Could not find matching constructor for: testJsonSlurper$person(java.lang.String)
答案 0 :(得分:1)
在您的班级 testJsonSlurper 中,您必须更改此行
def l2 = l.collect { new person(it) }
进入
def l2 = l.collect { new person(name:it) }
这就是我们所说的命名参数构造函数。您可以找到有关命名参数构造函数 here的更多信息。
如果您不想进行此更改,则需要在类 person 中自行添加构造函数。 添加构造函数后,类 person 应该如下所示。
class person {
String name
person(name){
this.name = name
}
}