Идентификатор объекта через jvms? - PullRequest
1 голос
/ 26 февраля 2010

У меня есть вопрос об ID объекта объекта через JVM. т.е. предположим, что я сохранил объект, созданный на JVM1, и теперь я хочу использовать тот же объект на JVM2.

  1. Так как это сделать.
  2. Будет ли идентификатор объекта одного и того же на обеих JVM?
  3. Если да для вышеуказанного вопроса, то что будет, если JVM2 уже имеет объект с идентификатором объекта, идентичным тому, который сохраняется.

спасибо.

Ответы [ 3 ]

3 голосов
/ 26 февраля 2010

Объект не будет существовать в JVM2, пока вы не десериализовали его. В Java нет понятия «универсальный идентификатор объекта» - если вам нужен идентификатор для ваших объектов, вам придется добавить его самостоятельно. Вы можете добавить поле UUID к вашему объекту; Затем вы захотите сохранить какой-то кеш, чтобы вы могли обнаружить дубликаты.

Вы действительно уверены, что вам все это нужно? Возможно, стоит еще раз взглянуть на картину в целом и изменить дизайн.

2 голосов
/ 26 февраля 2010

Вы можете добавить UUID к вашему объекту, чтобы создать уникальный идентификатор.

2 голосов
/ 26 февраля 2010

Проверьте сериализацию здесь или в качестве альтернативы вы можете использовать RMI - проверьте эту ссылку

Я не совсем уверен, что вы подразумеваете под Object Id, если вы имеете в виду ссылку, которую вы распечатываете, когда вы печатаете объект без метода toString, тогда это не идентификатор объекта, это ссылка на адрес памяти и будет отличаться на каждой JVM и будет отличаться на разных вызовах одной и той же программы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...