试图在java类中使用AutoValue of package com.google.auto.value.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文件-自动服务-1.0-rc1.jar,番石榴-16.0.1.jar,jsr-305-2.0.3.jar,auto 1.0-rc1.jar
还尝试添加m2e-apt插件和Maven ->“注释处理”-> select“自动配置JDT APT.”
仍然获取错误"AutoValue无法解析为“”类型
有什么解决办法吗?提前谢谢。
发布于 2019-07-25 10:44:23
看来你有点过时了。最新版本的汽车价值是1.6.5.
您不仅必须导入自动值,还必须导入自动值注释。来自汽车价值官方文件:
<dependency>
<groupId>com.google.auto.value</groupId>
<artifactId>auto-value-annotations</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>com.google.auto.value</groupId>
<artifactId>auto-value</artifactId>
<version>1.6.2</version>
<scope>provided</scope>
</dependency>你只需要这么多就行了。对于eclipse,您似乎已经看到了代码仿射。他们关于汽车价值的文章有点让人困惑。您只需要自动值和自动值注释。番石榴,自动服务,和jsr是不必要的使用与自动价值.
至少这对我有用。
https://stackoverflow.com/questions/55176365
复制相似问题