AutoValue

Google 的开源项目,用于自动补全生成 Java 模板代码,包括以下代码的自动生成:

  • equals
  • hashCode
  • toString
  • getter/setter
  • 抽象getter方法对应的字段
  • 全属性构造函数

AutoValue 通过注解读取自定义抽象类(通常是实体类),在编译时同一包目录下创建包可见性的实现类,以AutoValue_作为类名前缀

典型示例

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

@AutoValue
public abstract class Story{
  public abstract int id();
  public abstract String title();
  
  // 工厂方法,返回一个自动生成实现类的实例
  public static Story create(int id, String title){
    new AutoValue_Story(id,title);
  }
}

自动实现 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'
}

// 只需声明实现 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);
  }
}

参考

  • AutoValue - GitHub
  • 使用 Google AutoValue 自动生成代码

你可能感兴趣的:(AutoValue)