java - 如何在 Android 中将 transient 字段写入文件?

标签 java gson transient

我正在使用 Gson 将 POJO 写入文件。我需要受益于 transient 文件来管理序列化/反序列化。当我使该字段变为 transient 时,我无法将其写入文件或从文件中读取它。那么这个故障是源于Android中的Gson设置还是文件结构?提前致谢。

My Gson:

@Provides
    @Singleton
    Gson provideGson() {
        return new GsonBuilder()
                .setFieldNamingPolicy(FieldNamingPolicy.IDENTITY)
                .serializeNulls()
                .setLenient()
                .setDateFormat(Constants.GSON_DATE_FORMAT)
                .excludeFieldsWithoutExposeAnnotation()
                .create();
    }

Transient field in POJO

@Expose
private transient boolean pdfCreated; --> not visible in the file

最佳答案

这里有一个明显的非答案:你走错了路。

代码传达意图。因此,当您将字段标记为 transient 时,您就是在告诉人类读者(以及所有 Java 工具)不应写入/读取该字段。无论您的代码在该字段中放入什么值,您都会说“我不关心它,所以在(反)序列化该类的实例时忘记它”。

因此,真正的答案是退后一步,按照预期的方式使用这些关键字/注释。

关于java - 如何在 Android 中将 transient 字段写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53494796/

相关文章:

android - 使用 gson 保存数据和 mediaplayer 服务时出错

iphone - TableView 中的自定义部分

grails - grails gson View 使用模板扩展子项

java - 用作锁的 transient 最终字段为空

Java : Are transient objects garbage collected?

java - 为什么我无法获取 Failfast 事件和 ConcurrentModificationException

java - 简单的 odata4j - NoClassDefFoundError

java - jsonschema2pojo 不从 json 字符串生成 pojo 类

java - 什么 JDBC 属性对应于 mysql 命令行的 "--skip-secure-auth"选项?

android - 改造无法返回数据错误代码 400