2014-11-18 2 views
0

У меня есть сериализуемый класс, в котором есть некоторые члены, введенные из графического модуля. Однако эти члены неэриализуемы, и я не могу заставить их объявить интерфейс Serializable. Как написать функции readObject и writeObject для этого класса для поддержки сериализации экземпляра этого класса?Сериализуемый класс с неэриализуемым введенным элементом в JAVA

ответ

3

Вы можете объявить эти поля как transient, чтобы предотвратить автоматическую сериализацию или реализовать свои собственные readObject и writeObject. Реализация будет зависеть от вашего приложения. Если после десериализации вы можете стоять без несериализуемых элементов, просто игнорируйте их. Если они вам нужны, вам нужно найти способ их получить.

В вашем случае это объекты, вложенные в Guice. Если вы планируете десериализовать свой объект в контексте Guice, вам нужно вводить эти зависимости. Я не знаю Guice достаточно, но весной я знаю два способа:

  1. извлекать эти объекты программно из контекста приложения Spring (Guice in your case).
  2. Весна имеет завод, который может вставлять все необходимые зависимости. Я считаю, что у Guice должна быть аналогичная функциональность.
Смежные вопросы