Android 没有 getter 和 setter 的 Parcelable 实现
Android Parcelable implemenation without getters and setters
In android developers documentation to avoid getters and setters
Android Performance Pattern
How create Parcelable implemented model class?
你只需要直接给变量赋值。
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];}
};
In android developers documentation to avoid getters and setters Android Performance Pattern
不,不是。 The section on getters and setters is entitled "Avoid Internal Getters/Setters"(强调)。它指的是在 class 中使用 getters 和 setters,而不是字段访问。它并不建议通常应避免 getters 和 setters。
How create Parcelable implemented model class?
您以相同的方式创建所有 Parcelable
classes:
- 将
implements Parcelable
添加到 class 定义中
- 实施
writeToParcel()
- 实施
describeContents()
- 添加
CREATOR
static
字段
None 其中与 getter 或 setter 有任何关系。 the JavaDocs for Parcelable
中显示的 MyParcelable
示例 class 未对 mData
字段使用 getter 或 setter。
同样,使用 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];
}
};
}
它也不使用 getters 或 setters。
In android developers documentation to avoid getters and setters Android Performance Pattern How create Parcelable implemented model class?
你只需要直接给变量赋值。
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];}
};
In android developers documentation to avoid getters and setters Android Performance Pattern
不,不是。 The section on getters and setters is entitled "Avoid Internal Getters/Setters"(强调)。它指的是在 class 中使用 getters 和 setters,而不是字段访问。它并不建议通常应避免 getters 和 setters。
How create Parcelable implemented model class?
您以相同的方式创建所有 Parcelable
classes:
- 将
implements Parcelable
添加到 class 定义中 - 实施
writeToParcel()
- 实施
describeContents()
- 添加
CREATOR
static
字段
None 其中与 getter 或 setter 有任何关系。 the JavaDocs for Parcelable
中显示的 MyParcelable
示例 class 未对 mData
字段使用 getter 或 setter。
同样,使用 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];
}
};
}
它也不使用 getters 或 setters。