Ich weiß nicht, ob dies jemand helfen wird, aber dies scheint zu funktionieren:
if(type == type_BooleanArray) {
boolean eq = Arrays.equals((boolean[]) thisObj, (boolean[]) thatObj);
if(!eq) {
return false;
}
} else if(type == type_ByteArray) {
boolean eq = Arrays.equals((byte[]) thisObj, (byte[]) thatObj);
if(!eq) {
return false;
}
} else if(type == type_ShortArray) {
boolean eq = Arrays.equals((short[]) thisObj, (short[]) thatObj);
if(!eq) {
return false;
}
} else if(type == type_CharArray) {
boolean eq = Arrays.equals((char[]) thisObj, (char[]) thatObj);
if(!eq) {
return false;
}
} else if(type == type_IntArray) {
boolean eq = Arrays.equals((int[]) thisObj, (int[]) thatObj);
if(!eq) {
return false;
}
} else if(type == type_LongArray) {
boolean eq = Arrays.equals((long[]) thisObj, (long[]) thatObj);
if(!eq) {
return false;
}
} else if(type == type_FloatArray) {
boolean eq = Arrays.equals((float[]) thisObj, (float[]) thatObj);
if(!eq) {
return false;
}
} else if(type == type_DoubleArray) {
boolean eq = Arrays.equals((double[]) thisObj, (double[]) thatObj);
if(!eq) {
return false;
}
} else {
if(!thisObj.equals(thatObj)) {
return false;
}
}
Offenbar hat array.equals(otherArray)
ein array == otherArray
, und nicht das, was man erwarten würde .
Ich wurde Skeeted! –
Ich dachte, es gäbe eine Bibliotheksmethode, aber zwickt mich, indem ich deepEquals() auf Anhieb erwähnte. Arrays.equals() macht genau das, was diese Methode mit Ihrer Änderung macht, speichert aber auch a.length in einer temporären Variable (vor dem Vergleich der Längen). –
Danke! Und ich wusste einiges davon, danke, dass du mich daran erinnert hast ... der Mensch hat mich faul gemacht! –