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>