我无法使用 overrideDifferenceListener 方法附加自定义差异侦听器。
String xml1 = readFile("data/xml1.xml", Charset.defaultCharset());
String xml2 = readFile("data/xml2.xml", Charset.defaultCharset());
Diff xmlDiff = new Diff(xml1, xml2);
xmlDiff.overrideDifferenceListener(new MyDiffListener(listConsideredForDiff));
assertTrue(xmlDiff.similar());
自定义差异类
class MyDiffListener implements DifferenceListener{
private Set<String> consideredList = new HashSet<String>(); // list to consider for difference
public MyDiffListener(ArrayList<String> list) {
for(String element: list){
consideredList.add(element);
}
}
@Override
public int differenceFound(Difference diff) {
if (diff.getId() == DifferenceConstants.TEXT_VALUE_ID){
if(!consideredList.contains(diff.getControlNodeDetail().getNode().getParentNode().getNodeName())){
return DifferenceListener.RETURN_ACCEPT_DIFFERENCE;
}
}
return DifferenceListener.RETURN_IGNORE_DIFFERENCE_NODES_IDENTICAL;
}
@Override
public void skippedComparison(Node arg0, Node arg1) {
// TODO Auto-generated method stub
}
}
当我调试时,程序控件没有在 MyDiffListener 的differFound 方法中遇到断点。
这里出了什么问题?