如何将瞬态字段写入 Android 中的文件?

How to write transient fields to a file in Android?

我正在使用 Gson 将我的 POJO 写入文件。我需要利用临时文件来管理 serialization/deserialization。当我使这个字段成为临时字段时,我无法 write/read 它 to/from 一个文件。所以这个错误是源于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 工具)该字段不应该是 written/read。无论您的代码为该字段赋予什么价值,您都说过 "I don't care about it, so forget about it when (de)serializing instances of that class"。

因此,真正的答案是退后一步,按照预期的方式使用 keywords/annotations。