没有getter和setter的Android Parcelable实现

时间:2016-04-16 21:20:48

标签: android performance parcelable

  

在android开发人员文档中避免getter和setter   Android Performance Pattern   如何创建Parcelable实现的模型类?

2 个答案:

答案 0 :(得分:1)

  

在android开发者文档中避免getter和setter Android Performance Pattern

不,它没有。 The section on getters and setters is entitled "Avoid Internal Getters/Setters"(强调补充)。它指的是在类中使用getter和setter而不是字段访问。它并不表示一般应避免使用吸气剂和固定剂。

  

如何创建Parcelable实现的模型类?

您以相同的方式创建所有Parcelable classes

  • implements Parcelable添加到类定义
  • 实施writeToParcel()
  • 实施describeContents()
  • 添加CREATOR static字段

这些与getter或setter没有任何关系。 the JavaDocs for Parcelable中显示的MyParcelable示例类不会为mData字段使用getter或setter。

同样,使用parcelabler.com,这里Parcelable的{​​{1}}实现:

Chair

它也不使用getter或setter。

答案 1 :(得分:0)

您只需要将值直接赋值给变量。

  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];}
    };