groovy "with" block 使用情况查询

标签 groovy

我试图在Groovy中使用with块轻松地初始化我的类(class),但是出现以下错误。谁能告诉我我在做什么错?

MyXMLTemplate template = new MyXMLTemplate ().with {
    TxId = 'mnop'
    oapTxId = 'abcd'
}

我得到的错误是:
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)

我正在使用groovy 1.8.0

最佳答案

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

MyXMLTemplate template = new MyXMLTemplate ().with {
    TxId = 'mnop'
    oapTxId = 'abcd'
    it
}

关于groovy "with" block 使用情况查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7344862/

相关文章:

xml - 有没有不忽略注释节点的 Groovy XML 解析器?

sorting - Jenkins Pipelines 中的列表就地排序

java - GGTS 格罗维 :Can't have an abstract method in a non-abstract class in DslBuilder

unit-testing - 在 spock 测试中创建不会作为测试运行的辅助方法

grails - 整数枚举和g:select

grails - 不兼容的 groovy 编译器版本

rest - 使用wslite从rest响应中获取excel文件

java - 动态创建 Groovy 类

jenkins - Jenkins Pipeline 中的文件操作

grails - Groovy - 如何替换现有 java 类的方法