2010-11-25 2 views
3

Есть ли способ получить номер экземпляра или идентификатор, я имею в виду то, что вы можете увидеть в окне eclipse Debug> Variables после имени класса в столбце value.Как получить номер экземпляра

Благодаря

+0

Я считаю, что это просто адрес памяти объекта. `hashCode` может вернуть это число или его версию. – cdhowie 2010-11-25 20:01:34

ответ

1

По умолчанию, отладчик показывает вам результат toString() метода с хэш-код объекта. Таким образом, вы можете увидеть значение, выполнив метод hashCode().

5

См. System.identityHashCode, который возвращает число, которое будет возвращено, если Object.hashCode не был переопределен на объекте. Это не идеальный прокси для идентификации, поскольку для нескольких объектов может быть один и тот же хэш-код идентификатора, но он очень полезен для отладки.

0

Я полагаю, вы ссылаетесь на объекты ToString() реализацией .:

return getClass().getName() + "@" + Integer.toHexString(hashCode()); 
0

Может быть, я ошибаюсь, но я не думаю, что экземпляры класса пронумерованы. Я много раз искал способ получить экземпляры определенного класса и, согласно моим поисковым запросам, это было бы невозможно. У экземпляров есть адрес, но я не вижу смысла для номера экземпляра класса (объекты не сортируются по классу в памяти AFAIK). Обратите внимание, что вы всегда можете создать механизм для предоставления вам экземпляров определенного класса. У вас есть статическое количество в классе и дайте его значение каждому новому экземпляру, который вы создаете (в конструкторе), и увеличивайте его каждый раз. Это будет способ дифференцировать примеры.

Смежные вопросы