В зависимости от размера и количества скопированных файлов, Вы могли скопировать целевой каталог по источнику сначала с "да ко всем", тогда сделайте оригинал, который Вы делали, также с "да ко всему" набору. Это должно дать Вам те же результаты.
Unitils имеет следующие функции:
Утверждение равенства посредством отражения с различными параметрами, такими как игнорирование значений Java по умолчанию / null и игнорирование порядка коллекций
Я использую XStream:
/**
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object o) {
XStream xstream = new XStream();
String oxml = xstream.toXML(o);
String myxml = xstream.toXML(this);
return myxml.equals(oxml);
}
/**
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
XStream xstream = new XStream();
String myxml = xstream.toXML(this);
return myxml.hashCode();
}
Думаю, вы это знаете, но теоретически вы должны всегда переопределять .equals, чтобы утверждать, что два объекта действительно равны. Это означало бы, что они проверяют переопределенные методы .equals на своих членах.
Именно поэтому .equals определен в Object.
Если бы это было сделано последовательно, у вас не было бы проблем.