Mam vytvorit metodu, ktera bude porovnavat dva objekty podle parametru, v pripade ze ma objekt nejaky objekt jako parametr, tak se rekurzivne zavola metoda... Jaks taks sem to napsal, ale kdyz to pustim, tak se mi to cely zacne volat porad dokola na nejakych prapodivnych objektech, ktery sou pravdepodobne nejaky pozustatky z prvotni tridy Object z ktery vsechny ostatni dedi... Nevite nekdo v cem mam chybu?
static boolean reflectiveEquals(Object first, Object second) throws Exception{
if (first.getClass().getName().equals(second.getClass().getName())) {
Field[] pole1 = first.getClass().getDeclaredFields();
Field[] pole2 = second.getClass().getDeclaredFields();
for (int i = 0; i < pole1.length; i++) {
System.out.println("testovani: "+pole2[i].getName());
if(pole1[i].getType().isPrimitive()){
if (!pole1[i].getType().equals(pole2[i].getType())) {
return false;
}
if (!pole1[i].getName().equals(pole2[i].getName())) {
return false;
}
}else{
reflectiveEquals(pole1[i].getName(), pole2[i].getName());
}
}
return true;
}
return false;
}