groovy"with"块使用查询

Abe*_*Abe 8 groovy

我正在尝试使用Groovy中的with块来轻松地将我的类初始化,但是我收到以下错误.谁能告诉我我做错了什么?

MyXMLTemplate template = new MyXMLTemplate ().with {
    TxId = 'mnop'
    oapTxId = 'abcd'
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'abcd' with class 'java.lang.String' to class 'org.example.MyXMLTemplate'
at org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.castToType(DefaultTypeTransformation.java:331)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.castToType(ScriptBytecodeAdapter.java:599)
Run Code Online (Sandbox Code Playgroud)

我正在使用groovy 1.8.0

tim*_*tes 17

您需要从with块中返回模板本身:

MyXMLTemplate template = new MyXMLTemplate ().with {
    TxId = 'mnop'
    oapTxId = 'abcd'
    it
}
Run Code Online (Sandbox Code Playgroud)