You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle Kotlin DSL创建Transformer实例报错:需2个类型参数的解决方法

解决Gradle Kotlin DSL中XML转换Transformer的类型参数错误

这个错误的核心原因是导入了错误的Transformer类:你当前代码里引用的是kotlinx.coroutines.Transformer(协程库中的类型转换接口,需要2个泛型参数),而XML转换需要的是JDK自带的javax.xml.transform.Transformer。

解决方法有两种:

方法1:使用全限定类名声明变量

直接在变量类型前加上完整的包路径,明确指定使用XML转换的Transformer类:

var liquibaseChangelog: File = File("${project.rootProject.projectDir}/src/main/resources/config/liquibase/changelog/changelog-root.xml")

val source: Source = DOMSource(doc)
val result = StreamResult(FileWriter(liquibaseChangelog))

// 显式指定全限定类名
val transformer: javax.xml.transform.Transformer = javax.xml.transform.TransformerFactory.newInstance().newTransformer()
transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT, "yes")
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2")

方法2:修正导入语句

检查你的代码顶部导入,移除错误的协程Transformer导入(比如import kotlinx.coroutines.Transformer),替换为XML转换相关的正确导入:

import javax.xml.transform.Transformer
import javax.xml.transform.TransformerFactory
import javax.xml.transform.OutputKeys
import javax.xml.transform.dom.DOMSource
import javax.xml.transform.stream.StreamResult

之后就可以正常使用简化的类型声明了:

val transformer: Transformer = TransformerFactory.newInstance().newTransformer()

内容的提问来源于stack exchange,提问作者bobbyrne01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 17:10:17