다음 코드에서 equals()
은 true
을 반환하지만 예상하지는 않습니다. 내가 여기서 무엇을 놓치고 있니? 디버거에서 모두 배열을 보면 SparseBooleanArray.equals()가 예상대로 작동하지 않습니다.
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
, 그들은 (그들은 다른
shadow$_monitor_
값을 가지고,하지만 난 그 있어야 할 무엇인지 전혀 모른다) 나 같은 것 같다.
toString()
메서드는 둘 다 동일한 문자열을 반환합니다.
EnumSet
을 SparseBooleanArray
으로 변환하는 함수에 대한 단위 테스트를 작성하려하지만 동일한 배열을 수동으로 만들어 함수의 반환 값과 비교할 수는 없습니다.
편집
나는 또한 언급해야 그는 documentation에 따라 안뿐만 아니라 hasCode()
반환 다른 값.
매우 이상합니다. 나는 당신의 결과를 재현 할 수 있지만 소스 코드는 그들이 일치해야하는 것처럼 보입니다 ... – CommonsWare
어떤 버전의 안드로이드를 테스트하고 있습니까? – Blackbelt
@Blackbelt on Android 6.0 API 23 - x86_64 에뮬레이터 – rozina