java@AutoValue“找不到生成的符号类”错误
使用@AutoValue注释时,我得到“找不到生成的符号类”
public abstract class Office{
public static Office create(String cityName, String companyName, String regionName) {
return new AutoValue_Office(cityName, companyName, regionName);
}
public abstract String getCompanyName();
public abstract String getCityName();
public abstract String getRegionName();
}
梯度依赖 编译'com。谷歌。汽车值:自动值:1.0-rc1'
另外,如何只向equals和hashcode函数添加选定的属性
# 1 楼答案
问题是,您使用的Android版本没有注释javax。注释。生成(在Java6中添加)。您可以按照this question的答案中所述手动添加
关于从equals和hashCode中排除某些属性的问题,目前还没有完美的方法。通常,这样做的愿望表明需要将应该包含在单独类中的属性分离,并在equals和hashCode中使用这些属性。或者,可以将非最终字段添加到Office类中并进行设置。例如,如果不包括regionName,您可以这样写:
主要的缺点是regionName不是final,因此您无法从其他线程获得与其他属性相同的访问保证