Care este diferența dintre interfețele Serializable și Parcelable în transmiterea obiectelor în Android?
sobes.tech AI
Răspuns de la AI
Serializable și Parcelable sunt interfețe pentru serializarea obiectelor în Android, dar au caracteristici diferite:
-
Serializable: este interfața standard Java. Este ușor de utilizat (trebuie doar să implementezi interfața), dar funcționează mai lent și generează mai mult overhead în timpul serializării.
-
Parcelable: este o interfață specifică Android care necesită implementarea manuală a metodelor pentru scrierea și citirea datelor. Funcționează mult mai rapid și mai eficient, ceea ce este important pentru transferul obiectelor între componentele Android (de exemplu, prin
IntentsauBundle).
Exemplu de utilizare a 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);
}
}
Prin urmare, pentru transferul obiectelor în Android, este recomandabil să folosiți Parcelable datorită performanței sale.