groovy.lang.MissingMethodException: No signature of method: static com.github.difflib.DiffUtils.generateUnifiedDiff() is applicable for argument types: (java.lang.String, java.lang.String, java.util.ArrayList, com.github.difflib.patch.Patch, java.lang.Integer) values: [Data.csv, Data.csv, ["ID","NAME","NAME","EMAIL" , "011","John","22","John@email.com" , ...], ...]
时间: 2023-07-19 08:20:25 浏览: 229
这个错误提示说明在您的代码中,您尝试调用了 `com.github.difflib.DiffUtils.generateUnifiedDiff()` 方法,但是该方法的参数类型与您传递的参数类型不匹配。具体来说,该方法需要以下参数:
```
generateUnifiedDiff(String original, String revised, List<String> originalLines, Patch<String> patch, int contextSize)
```
您传递的参数为:
```
generateUnifiedDiff("Data.csv", "Data.csv", ["ID","NAME","NAME","EMAIL" , "011","John","22","John@email.com" , ...], ..., null)
```
可以看到,您传递的参数中缺少了第五个参数 `contextSize`,而最后一个参数为 `null`。您需要给该方法传递正确的参数才能解决这个错误。
相关问题
groovy.lang.MissingMethodException: No signature of method: com.github.difflib.patch.ChangeDelta.getRevised() is applicable for argument types: () values: []
根据报错信息,"com.github.difflib.patch.ChangeDelta"类中没有名为"getRevised()"的方法,并且该方法没有接受任何参数。因此,您在调用"getRevised()"方法时出现了"MissingMethodException"异常。
如果您想要获取修订后的内容,可能需要查看该类的其他方法或属性来获取目标内容。请检查文档或源代码以确定正确的方法或属性名称,并相应地进行调整。
解决:Reason: groovy.lang.MissingMethodException: No signature of method: static com.github.difflib.DiffUtils.htmlDiff() is applicable for argument types: (java.util.ArrayList, java.util.ArrayList) values: [["ID","NAME","NAME","EMAIL", "011","John","22","John@email.com", ...], ...]
这个错误提示说明 `DiffUtils.htmlDiff()` 方法没有接受两个 `ArrayList` 类型的参数。这是因为 `DiffUtils.htmlDiff()` 方法需要接受两个 `List<String>` 类型的参数,而不是 `ArrayList` 类型。
你可以尝试将 `ArrayList` 转换为 `List<String>` 类型,例如:
```groovy
def lines1 = Files.readAllLines(file1).toList()
def lines2 = Files.readAllLines(file2).toList()
def diff = DiffUtils.diff(lines1, lines2)
if (!diff.getDeltas().isEmpty()) {
// Differences found, generate HTML report
def html = DiffUtils.htmlDiff(lines1, lines2)
def diffFile = diffOutputFolder.resolve("${file1.fileName}-diff.html")
Files.write(diffFile, html.getBytes())
}
```
这样,`DiffUtils.htmlDiff()` 方法就可以正确地接受 `List<String>` 类型的参数了。
阅读全文