Groovy 在这种情况下如何使用with语句?
我有类似的东西Groovy 在这种情况下如何使用with语句?,groovy,Groovy,我有类似的东西 def firstName = apiAccessor.getIdentityAPI().getUser(commentInput.authorId).firstName def lastName = apiAccessor.getIdentityAPI().getUser(commentInput.authorId).lastName commentVar.authorFullName = firstName + " " + lastName 它是有效的,但我想用语句做同样的
def firstName = apiAccessor.getIdentityAPI().getUser(commentInput.authorId).firstName
def lastName = apiAccessor.getIdentityAPI().getUser(commentInput.authorId).lastName
commentVar.authorFullName = firstName + " " + lastName
它是有效的,但我想用语句做同样的事情
我试过了,但没用:
with(apiAccessor.getIdentityAPI().getUser(commentInput.authorId)) {
commentVar.authorFullName = it.firstName + " " + it.lastName
}
它应该是什么样子?你用{…}(或
)直接点击你想用的东西
在封闭的内部。它是一个委托,所以你甚至不需要使用
it`(或命名参数)
您的代码非常接近:
def data = [a: [b: [c: [firstName: "X", lastName: "Y"]]]]
def commentVar = [:]
data.a.b.c.with {
commentVar.authorFullName = firstName + " " + lastName
}
assert commentVar.authorFullName == "X Y"
我认为它应该是apiAccessor.getIdentityAPI().getUser(commentInput.authord)。使用{commentVar.authorFullName=firstName+“”+lastName}是的,它可以工作。谢谢