gpt4 book ai didi

java - JAVA 中具有不可序列化注入(inject)成员的可序列化类

转载 作者:行者123 更新时间:2023-12-01 22:34:58 28 4
gpt4 key购买 nike

我有一个可序列化的类,其中有一些从 guice 模块注入(inject)的成员。但是,这些成员是不可序列化的,我无法使用 Serialized 接口(interface)强制声明它们。我该如何为该类编写readObject和writeObject函数来支持该类实例的序列化?

最佳答案

您可以将这些字段声明为 transient 以防止自动序列化,也可以实现您自己的 readObjectwriteObject。实现将取决于您的应用程序。如果反序列化后您可以在没有不可序列化成员的情况下忍受,则忽略它们。如果您需要它们,您必须找到获取它们的方法。

在你的例子中,这些是 Guice 注入(inject)的对象。如果您计划在 Guice 上下文中反序列化对象,则必须注入(inject)这些依赖项。我不太了解 Guice,但在 Spring 中我知道两种方法:

  1. 以编程方式从当前 Spring(在您的情况下为 Guice)应用程序上下文中获取这些对象。
  2. Spring 有一个工厂,可以自行注入(inject)所有需要的依赖项。我相信Guice应该有类似的功能。

关于java - JAVA 中具有不可序列化注入(inject)成员的可序列化类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26991585/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com