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

时间:2018-11-27 07:35:41

标签: java gson transient

我正在使用Gson将POJO写入文件中。我需要从一个临时文件中受益,以管理序列化/反序列化。当我将此字段设为瞬态时,无法将其写入文件或从文件读取。那么,这个错误是源于Android中的Gson设置还是文件结构?预先感谢。

  

我的Gson:

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

POJO中的瞬态字段

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

1 个答案:

答案 0 :(得分:2)

一个明显的非回答:您走错了兔子洞。

代码传达了意图。因此,当您将字段标记为transient时,就是在告诉您的读者(和所有Java工具)不要读写该字段。无论您的代码在该字段中输入什么值,您都说“我不在乎,因此在对该类的实例进行反序列化时,请不要理会它。”

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