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