Im folgenden Code würde ich equals()
erwarten, true
zurückgeben, aber es tut es nicht. Was fehlt mir hier?SparseBooleanArray.equals() funktioniert nicht wie erwartet
SparseBooleanArray array_0 = new SparseBooleanArray();
array_0.put(0, true);
array_0.put(2, true);
SparseBooleanArray array_1 = new SparseBooleanArray();
array_1.put(0, true);
array_1.put(2, true);
boolean isEqual = array_0.equals(array_1); // is false instead of true
an beiden Array im Debugger Blick scheint sie mich gleich (sie haben einen anderen shadow$_monitor_
Wert, aber ich habe keine Ahnung, was das sein sollte). Die Methode toString()
gibt für beide die gleiche Zeichenfolge zurück.
Ich versuche, einen Komponententest für eine Funktion zu schreiben, die eine EnumSet
in eine SparseBooleanArray
konvertiert, aber ich kann das gleiche Array nicht manuell erstellen, um es mit dem Rückgabewert der Funktion zu vergleichen.
bearbeiten
ich auch, dass hasCode()
gibt unterschiedliche Werte als auch erwähnen sollte, die nicht auf der documentation basieren sollte.
Das ist sehr seltsam ist. Ich kann Ihre Ergebnisse reproduzieren, aber der Quellcode sieht aus wie sie übereinstimmen sollten ... – CommonsWare
auf welcher Android-Version testen Sie es? – Blackbelt
@Blackbelt On Android 6.0 API 23 - x86_64 Emulator – rozina