Sobes.tech
Junior — Middle

Quelle est la différence entre les interfaces Serializable et Parcelable lors du transfert d'objets dans Android?

sobes.tech IA

Réponse de l'IA

Serializable et Parcelable sont des interfaces pour la sérialisation d’objets dans Android, mais elles ont des caractéristiques différentes :

  • Serializable : c’est l’interface standard de Java. Elle est simple à utiliser (il suffit d’implémenter l’interface), mais elle est plus lente et génère plus de surcharge lors de la sérialisation.

  • Parcelable : c’est une interface spécifique à Android qui nécessite une implémentation manuelle des méthodes pour écrire et lire les données. Elle fonctionne beaucoup plus rapidement et efficacement, ce qui est important pour transférer des objets entre les composants Android (par exemple, via Intent ou Bundle).

Exemple d’utilisation de Parcelable :

public class User implements Parcelable {
    private String name;
    private int age;

    protected User(Parcel in) {
        name = in.readString();
        age = in.readInt();
    }

    public static final Creator<User> CREATOR = new Creator<User>() {
        @Override
        public User createFromParcel(Parcel in) {
            return new User(in);
        }

        @Override
        public User[] newArray(int size) {
            return new User[size];
        }
    };

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(name);
        dest.writeInt(age);
    }
}

Ainsi, pour transférer des objets dans Android, il est préférable d’utiliser Parcelable en raison de ses performances.