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