Sobes.tech
Junior — Middle

Wat is het verschil tussen de interfaces Serializable en Parcelable bij het overdragen van objecten in Android?

sobes.tech AI

Antwoord van AI

Serializable en Parcelable zijn interfaces voor het serialiseren van objecten in Android, maar ze hebben verschillende kenmerken:

  • Serializable: is de standaard Java-interface. Het is eenvoudig te gebruiken (je hoeft alleen de interface te implementeren), maar het werkt langzamer en genereert meer overhead tijdens serialisatie.

  • Parcelable: is een Android-specifieke interface die handmatige implementatie van methoden vereist voor het schrijven en lezen van gegevens. Het werkt veel sneller en efficiënter, wat belangrijk is voor het overdragen van objecten tussen Android-componenten (bijvoorbeeld via Intent of Bundle).

Voorbeeld van het gebruik van 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);
    }
}

Daarom is het bij het overdragen van objecten in Android aan te raden om Parcelable te gebruiken vanwege de prestaties.