patch.getDeltas().getOriginal().getLines()时报错:groovy.lang.MissingMethodException: No signature of method: com.github.difflib.patch.ChangeDelta.getOriginal() is applicable for argument types: () values: []
时间: 2024-02-22 07:55:04 浏览: 113
根据错误信息来看,似乎是ChangeDelta类中没有名为getOriginal()的方法。而且根据你的代码,getDeltas()方法返回的是一个Delta类型的列表,而Delta类型也没有getOriginal()方法。因此,你需要先从getDeltas()方法返回的列表中获取一个Delta对象,然后再通过这个对象调用getOriginal()方法获取原始行。具体代码可能类似于以下形式:
```
List<Delta> deltas = patch.getDeltas();
Delta delta = deltas.get(0); // 获取第一个Delta对象
List<?> originalLines = delta.getOriginal().getLines(); // 获取原始行
```
需要根据你的具体情况进行调整。
相关问题
patch.getDeltas().getOriginal().getPosition()
这段代码可能会导致 `groovy.lang.MissingMethodException` 异常,因为 `getOriginal()` 方法返回的是一个 `Object` 对象,而 `getPosition()` 方法可能并不存在于 `Object` 类中。你需要先将 `Object` 对象转换成 `Delta` 对象,再调用 `getPosition()` 方法。可以通过以下方式实现:
```
List<Delta> deltas = patch.getDeltas();
for (Delta delta : deltas) {
if (delta instanceof ChangeDelta) {
ChangeDelta changeDelta = (ChangeDelta) delta;
Original original = changeDelta.getOriginal();
int position = original.getPosition();
// 使用 position 变量进行后续的操作
// ...
}
}
```
这段代码可以遍历 `deltas` 列表,判断每个 `Delta` 对象是否为 `ChangeDelta` 类型,如果是,则将其强制转换为 `ChangeDelta` 对象,并通过 `getOriginal()` 方法获取 `Original` 对象,最后调用 `getPosition()` 方法获取位置。
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"异常。
如果您想要获取修订后的内容,可能需要查看该类的其他方法或属性来获取目标内容。请检查文档或源代码以确定正确的方法或属性名称,并相应地进行调整。
阅读全文