AutoValue

Google 的開源項(xiàng)目,用于自動補(bǔ)全生成 Java 模板代碼,包括以下代碼的自動生成:

  • equals
  • hashCode
  • toString
  • getter/setter
  • 抽象getter方法對應(yīng)的字段
  • 全屬性構(gòu)造函數(shù)

AutoValue 通過注解讀取自定義抽象類(通常是實(shí)體類),在編譯時(shí)同一包目錄下創(chuàng)建包可見性的實(shí)現(xiàn)類,以AutoValue_作為類名前綴

典型示例

// 引入依賴
dependencies {
  apt 'com.google.auto.value:auto-value:1.2'
}

@AutoValue
public abstract class Story{
  public abstract int id();
  public abstract String title();
  
  // 工廠方法,返回一個(gè)自動生成實(shí)現(xiàn)類的實(shí)例
  public static Story create(int id, String title){
    new AutoValue_Story(id,title);
  }
}

自動實(shí)現(xiàn) Parcelable

dependencies {
  provided 'com.google.auto.value:auto-value:1.2'
  apt 'com.google.auto.value:auto-value:1.2'
  apt 'com.ryanharter.auto.value:auto-value-parcel:0.2.1'
}

// 只需聲明實(shí)現(xiàn) Parcelable 接口即可
@AutoValue
public abstract class Story implements Parcelable{
  public abstract int id();
  public abstract String title();
  public static Story create(int id, String title){
    new AutoValue_Story(id,title);
  }
}

參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容