尝试在我的java类中使用com.google.auto.value.AutoValue包的AutoValue并收到错误“无法将AutoValue解析为类型”
我已经在pom.xml中添加了它
<!-- https://mvnrepository.com/artifact/com.google.auto.value/auto-value -->
<dependency>
<groupId>com.google.auto.value</groupId>
<artifactId>auto-value</artifactId>
<version>1.2</version>
<scope>provided</scope>
</dependency>
Java程序:
package xxxx;
import ------
import com.google.auto.value.AutoValue;
@AutoValue
@DefaultCoder(SerializableCoder.class)
public abstract class ABC{
/**
* Manually create a test row.
*/
public static ABC create(List<Object> fields) {
return new AutoValue_ABC(fields); //error is here
}
public abstract List<Object> fields();
}
我尝试了一些解决方案,例如,通过打开项目属性,浏览到Java编译器->注释处理->工厂路径,单击“添加外部JAR”,然后选择4个jar文件-auto-service-1.0-rc1来添加它.jar, 番石榴16.0.1.jar, jsr-305-2.0.3.jar, auto-value-1.0-rc1.jar
还尝试添加m2e-apt插件和Maven->“注释处理”->选择“自动配置JDT APT ...”
仍然出现错误“自动值无法解析为类型”
有解决方案吗? 预先感谢。
答案 0 :(得分:0)
您似乎有些过时了。自动值的最新版本是1.6.5。
不仅必须导入自动值,还必须导入自动值注释。来自official documentation of auto-value:
super(self.__class__, self)
这就是您需要的Maven。对于日食,您似乎已经看过Code Affine。他们关于自动值的文章有些混乱。您只需要自动值和自动值注释。番石榴,自动服务和jsr不需要与自动值一起使用。
至少这对我有用。