我正在使用 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/