안드로이드에서 객체 참조를 전달하는 방법에 대한 연구를 수행하면서 다음에 대해 생각해 보았습니다.Long, Int 또는 String과 같은 WeakHashMap
키가 Long 인 WeakHashmap이 있다고 가정 해 보겠습니다. 그리고 이제 하나의 Object를이 WeakHashMap에 넣고 키 'new Long (1)'에 할당합니다 (이 Long에 대한 참조를 저장한다고 가정).
이제 응용 프로그램의 다른 부분이 새로운 Long (1)을 만들고 그 이후에 널 (null)로 첫 번째 Long (키로 사용됨)을 설정했습니다.
- WeakHashMap의 Object는 어떻게됩니까?
- Long을 자신의 Class로 Long을 Long으로 대체하고 같은 값을 가진 동일한 유형의 다른 객체 (예 : 내 클래스)와 Long을 비교하면 compare() - Method가 true를 반환합니다.
- 두 경우 모두 WeakReference가 지워진다 고 가정합니다. 첫 번째를 지우기 전에 WeakHasMap에 액세스하기 위해 두 번째로 만든 키를 사용하면 차이가 있습니까?
제어하지 않는 유형의 WeakHashMap을 사용하면 꽤 위험합니다. –
보통 위험한 일은 자신이하는 일을 알면 매우 편리해질 수 있습니다. 그것이 내가 묻는 이유입니다 ;-) – Chris