Zakładam, że mają wewnętrznie IdentityHashMap<Object, Integer>
, przypisując unikalną (ale nie mającą znaczenia w inny sposób) liczbę całkowitą na obiekt. To powinno być wewnętrzne dla debuggera zaćmienia (nie jest to specjalny identyfikator, który mają obiekty), czy pytasz, jak się do tego dostać?
Edit: Chciałbym założyć breakpoint tak (uwaga nie jestem dobrze zorientowany w Eclipse):
- musiałbym początkowy przerwania (jak ten użyty do podjęcia zrzut ekranu) i wydrukuj obiekt
System.identityHashCode(object)
obiektu, który mnie interesuje.
- Następnie utworzyłbym punkt przerwania przy użyciu warunku
System.identityHashCode(object) == <whatever number you saw at the previous step>
. Byłoby bardzo rzadkie, aby zatrzymać się na niewłaściwym obiekcie.
Albo jeśli obiekt jesteś zainteresowany w posiada odpowiedni toString()
reprezentację można użyć, można również spróbować, że zamiast System.identityHashCode(object)
. We wszystkich przypadkach nie trzeba polegać na "wewnętrznym id obiektu", ale uchwycić taki "identyfikator" (lub prawie), który można uzyskać z samego obiektu.
Generalnie - debuguję aplikację i chciałbym zebrać informacje o obiektach podczas uruchamiania procesu - aby zatrzymać się w punkcie przerwania i uzyskać informacje o ścieżce obiektu przez wywołanie funkcji ... – Gorbush
+1 Myślę to prawda, liczby wydają się być przydzielane i śledzone wewnętrznie przez debugger Eclipse, łatwiejsze do odczytania i rozpoznania niż rzeczywiste identyfikatory obiektów JVM. – skaffman
Też myślę, że pochodzą z http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/jdk/api/jpda/jdi/com/sun/jdi/ObjectReference.html#uniqueID%28 % 29 implementacja przez Eclipse debugger. – Redlab