2013-11-19 3 views
2

Мое приложение хранит ответы на мой веб-сервис в WeakHashMap. В моем приложении я манипулирую данными, возвращающимися из веб-службы в пользовательском интерфейсе, и поскольку ссылки на объекты ссылаются, он также модифицирует ссылку (в моем слабом хэш-карте).Выполнение копии объекта Динамически?

Есть ли способ сохранить копию объектов в мой хэш-файл вместо ссылки, не имея возможности реализовать Clonable для каждого объекта модели в моем приложении?

ответ

1

Kryo позволяет выполнять сериализацию с минимальными усилиями. Он также должен быть очень эффективным, поскольку использует прямое копирование памяти с помощью sun.misc.Unsafe. С их быстрого запуска:

Kryo kryo = new Kryo(); 
SomeClass someObject = ... 
SomeClass copy1 = kryo.copy(someObject); 
SomeClass copy2 = kryo.copyShallow(someObject); 
+0

Спасибо, попробуйте – aryaxt

+0

Используется в моем приложении для Android и отлично работает. Еще раз спасибо – aryaxt

+0

Я рад слышать, что это сработало для вас. :) –

0

Для этого вы можете использовать сериализацию/десериализацию.

+0

... и для этого требуется реализовать 'Serializable' (и/или' Externalizable'). – afk5min

+0

Да, я не хочу делать это каждый раз, когда добавляю новую модель – aryaxt

+1

, единственная другая возможность - это полные безобразные небезопасные хаки, которые требуют, чтобы вы делали сильные предположения о структуре внутренней памяти объектов и могли нарушаться с следующее незначительное обновление hotspot .. –

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