Ποια είναι η διαφορά μεταξύ των διεπαφών Serializable και Parcelable κατά τη μεταφορά αντικειμένων στο Android;
sobes.tech AI
Απάντηση από AI
Το Serializable και το Parcelable είναι διεπαφές για σειριοποίηση αντικειμένων στο Android, αλλά έχουν διαφορετικά χαρακτηριστικά:
-
Serializable: είναι η προεπιλεγμένη διεπαφή της Java. Είναι εύκολη στη χρήση (απλά υλοποιήστε τη διεπαφή), αλλά λειτουργεί πιο αργά και δημιουργεί περισσότερη επιβάρυνση κατά τη σειριοποίηση.
-
Parcelable: είναι μια ειδική διεπαφή του Android που απαιτεί χειροκίνητη υλοποίηση των μεθόδων για την εγγραφή και ανάγνωση δεδομένων. Λειτουργεί πολύ πιο γρήγορα και αποδοτικά, κάτι που είναι σημαντικό για τη μεταφορά αντικειμένων μεταξύ των συστατικών του Android (π.χ. μέσω
IntentήBundle).
Παράδειγμα χρήσης του 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);
}
}
Επομένως, για τη μεταφορά αντικειμένων στο Android, προτιμάται η χρήση του Parcelable λόγω της απόδοσής του.