Sobes.tech
Junior — Middle

Was ist der Unterschied zwischen den Schnittstellen Serializable und Parcelable beim Übertragen von Objekten in Android?

sobes.tech KI

Antwort von AI

Serializable und Parcelable sind Schnittstellen zur Serialisierung von Objekten in Android, aber sie haben unterschiedliche Eigenschaften:

  • Serializable: ist die Standard-Schnittstelle von Java. Es ist einfach zu verwenden (einfach die Schnittstelle implementieren), aber es ist langsamer und verursacht mehr Overhead bei der Serialisierung.

  • Parcelable: ist eine spezifische Android-Schnittstelle, die eine manuelle Implementierung der Methoden zum Schreiben und Lesen von Daten erfordert. Es ist viel schneller und effizienter, was wichtig ist, um Objekte zwischen Android-Komponenten zu übertragen (z.B. über Intent oder Bundle).

Beispiel für die Verwendung von 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);
    }
}

Daher ist es bei der Übertragung von Objekten in Android vorzuziehen, Parcelable wegen seiner Leistung zu verwenden.