我正在使用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
答案 0 :(得分:2)
一个明显的非回答:您走错了兔子洞。
代码传达了意图。因此,当您将字段标记为transient
时,就是在告诉您的读者(和所有Java工具)不要读写该字段。无论您的代码在该字段中输入什么值,您都说“我不在乎,因此在对该类的实例进行反序列化时,请不要理会它。”
因此,真正的答案是退后一步,以预期的方式使用此类关键字/注释。