ich habe leider diese programmcode nicht verstanden kann bitte jemand mir das erklären.
ich wäre sehr dankbar
Java:
public boolean equals(Object o) {
boolean res = false;
if (o.getClass().equals(getClass())) {
BeanInfo bi;
try {
bi = Introspector.getBeanInfo(getClass());
}
catch(Exception e) {
return false;
}
PropertyDescriptor[] pds = bi.getPropertyDescriptors();
res = true;
for(int i=0; i<pds.length; i++) {
if (pds[i].getName().equals("class") || pds[i].getName().equals("id")) {
continue;
}
Method readM = pds[i].getReadMethod();
if (readM != null) {
try {
Object valueThis = readM.invoke(this, (Object[])null);
Object valueOther = readM.invoke(o, (Object[])null);
if (valueThis==null) {
if (valueOther!=null) {
if (valueOther instanceof Collection) {
if(((Collection)valueOther).size()!=0) {
res = false;
break;
}
}
else {
res = false;
break;
}
}
}
else {
try {
if (valueThis instanceof Collection && valueOther instanceof Collection) {
if (((Collection)valueThis).size() != ((Collection)valueOther).size()) {
res = false;
break;
}
}
else if (!valueThis.equals(valueOther)) {
res = false;
break;
}
}
catch (Exception e) { }
}
}
catch (InvocationTargetException e) {
return false;
}
catch (IllegalAccessException e) {/*nop*/}
}
}
}
return res;
}
Zuletzt bearbeitet von einem Moderator: