[英]Android Parcelable implemenation without getters and setters
在android開發人員文檔中避免使用getter和setter的Android Performance Pattern
不,不是的。 關於getter和setter的部分標題為“避免內部 getter / setter” (添加了重點)。 它是指在類內部使用getter和setter,而不是字段訪問。 它並不建議一般應避免使用吸氣劑和吸氣劑。
如何創建Parcelable實現的模型類?
您可以通過以下方式創建所有Parcelable
類 :
implements Parcelable
添加到類定義 writeToParcel()
describeContents()
CREATOR
static
字段 這些都與吸氣劑或吸氣劑無關。 所述MyParcelable
所示示例類JavaDocs獲得Parcelable
不使用的吸氣劑或用於一個setter mData
字段。
同樣,使用parcelabler.com ,這里是Parcelable
實施的Chair
:
public class Chair implements Parcelable {
private String material;
private int numLegs;
protected Chair(Parcel in) {
material = in.readString();
numLegs = in.readInt();
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(material);
dest.writeInt(numLegs);
}
@SuppressWarnings("unused")
public static final Parcelable.Creator<Chair> CREATOR = new Parcelable.Creator<Chair>() {
@Override
public Chair createFromParcel(Parcel in) {
return new Chair(in);
}
@Override
public Chair[] newArray(int size) {
return new Chair[size];
}
};
}
它還不使用getter或setter。
您只需要直接將值分配給變量即可。
private String item1;
private String item2;
public ClassName(String item1, String item2) {
this.item1 = item1;
this.item2 = item2;
}
protected ClassName(Parcel in) {
this.item1 = in.readString();
this.item2 = in.readString();
}
@Override
public int describeContents() { return 0; }
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.item1);
dest.writeString(this.item2);
}
public static final Creator<ClassName> CREATOR = new Creator<ClassName>() {
@Override
public ClassName createFromParcel(Parcel source) {return new ClassName(source);}
@Override
public ClassName[] newArray(int size) {return new ClassName[size];}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.