Как записать переходные поля в файл в Android? - PullRequest
0 голосов
/ 27 ноября 2018

Я записываю свой POJO в файл, используя Gson.Мне нужно воспользоваться временным файлом для управления сериализацией / десериализацией.Когда я делаю это поле временным, я не могу записать / прочитать его в / из файла.Таким образом, эта ошибка происходит из настроек Gson или структуры файла в Android?Заранее спасибо.

Мой 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 голосов
/ 27 ноября 2018

Здесь совершенно нет ответа: вы идете по неправильной кроличьей норе.

Код сообщает Намерение .Поэтому, когда вы помечаете поля как transient, вы говорите своим читателям (и всем инструментам Java), что это поле не должно быть записано / прочитано.Какую бы ценность ваш код ни вкладывал в это поле, вы сказали: «Меня это не волнует, поэтому забудьте об этом, когда (де) сериализуете экземпляры этого класса».

Таким образом, реальный ответ - сделать шаг назад.и используйте такие ключевые слова / аннотации так, как они предназначены.

...