Создание класса Firebase POJO, реализующего Serializable / Parcelable - PullRequest
0 голосов
/ 03 сентября 2018

Я видел этот пост здесь в Stackoverflow . Если я хочу передать объект другому действию, класс должен быть сериализуемым. Итак, мой вопрос: возможно ли реализовать сериализуемый класс Pojo? Есть ли конфликты, если я буду использовать Serializable или Parcelable?

Ответы [ 3 ]

0 голосов
/ 03 сентября 2018

Да, можно реализовать Serializable или Parcelable для класса POJO. Прежде всего, небольшое введение: Сериализуемый - это стандартный интерфейс Java. Это использует отражение, и это медленный процесс. Этот метод создает много временных объектов и вызывает довольно много мусора. Parcelable процесс намного быстрее, чем сериализуемый. Это Android-реализация Java-сериализуемой. Предполагается определенная структура и способ ее обработки. Таким образом, Parcelable может быть обработан относительно быстро по сравнению со стандартной сериализацией Java.

0 голосов
/ 03 сентября 2018

Итак, мой вопрос: возможно ли реализовать сериализуемый класс Pojo?

Да, это так. Просто добавьте к вашему классу POJO, что implements Serializable, и ваш класс будет serializable. Поэтому, если вам нужно передавать объекты между действиями, ваши классы и подклассы должны быть сериализуемыми.

public class ModelClass implements Serializable {}

Есть ли какие-либо конфликты, если я буду реализовывать Serializable или Parcelable?

Нет, не будет никаких конфликтов, но есть некоторые различия в использовании того или иного интерфейса, о котором вам следует позаботиться. Поэтому для этого я рекомендую вам просмотреть следующие сообщения: Parcelable против Сериализуемый .

0 голосов
/ 03 сентября 2018

Пока каждый член вашего POJO также реализует Serializable, у вас все будет хорошо.

Конфликты будут возникать только в том случае, если в вашем POJO есть дочерний элемент, который является другим POJO, и этот POJO не реализует Serializable.

Члены типа String, int, enums и т. Д. По умолчанию являются сериализуемыми, поэтому вас должно беспокоить только наличие нетривиального свойства, которое не реализует Serializable.

...