Maven compilation error: Incompatible lists
Maven compilation error: Incompatible lists
我想对一个 List 进行空检查并将其分配给最终 class 属性:
private final ExcelDocument xls;
private final List<ValidationError> validationErrors;
public DefaultExaminationParser(ExcelDocument xls, List<ValidationError> validationErrors)
{
this.xls = xls;
this.validationErrors = validationErrors == null ? new ArrayList<>() : validationErrors;
}
导入为:import java.util.List;
和 import java.util.ArrayList;
eclipse和maven中的编译器是Java1.8
我的 IDE (eclipse) 没有显示此行有任何问题,但是当我 运行 maven 构建时它失败并出现以下错误:
DefaultExaminationParser.java:[84,51] error: incompatible types: List<? extends Object>
cannot be converted to List<ValidationError>
ValidationError 定义为:
@XmlRootElement
@XmlAccessorType(XmlAccessType.NONE)
public class ValidationError implements Serializable, DetailInfo {
[...]
}
我在这里没有看到任何错误。我也可以 运行 对此 class 进行单元测试,没有问题。
问题是,maven 的编译器级别在几个父 pom 文件之一中设置为 1.7。
使用以下代码段将其明确设置为 1.8:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<encoding>utf8</encoding>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
我想对一个 List 进行空检查并将其分配给最终 class 属性:
private final ExcelDocument xls;
private final List<ValidationError> validationErrors;
public DefaultExaminationParser(ExcelDocument xls, List<ValidationError> validationErrors)
{
this.xls = xls;
this.validationErrors = validationErrors == null ? new ArrayList<>() : validationErrors;
}
导入为:import java.util.List;
和 import java.util.ArrayList;
eclipse和maven中的编译器是Java1.8
我的 IDE (eclipse) 没有显示此行有任何问题,但是当我 运行 maven 构建时它失败并出现以下错误:
DefaultExaminationParser.java:[84,51] error: incompatible types:
List<? extends Object>
cannot be converted toList<ValidationError>
ValidationError 定义为:
@XmlRootElement
@XmlAccessorType(XmlAccessType.NONE)
public class ValidationError implements Serializable, DetailInfo {
[...]
}
我在这里没有看到任何错误。我也可以 运行 对此 class 进行单元测试,没有问题。
问题是,maven 的编译器级别在几个父 pom 文件之一中设置为 1.7。
使用以下代码段将其明确设置为 1.8:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<encoding>utf8</encoding>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>