如何将瞬态字段写入 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。
我正在使用 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。