Java编译错误:找不到符号

sbe*_*kov 2 java compiler-errors maven

我有一个在Idea中成功编译但无法编译的代码maven clean package.代码是

import java.util.concurrent.*;

public class WebStatusMonitor {

    private ConcurrentMap<String, Double> load = new ConcurrentHashMap<>();

    public void handle(...) {
        ...
        snapshot.add(String.format("cpu: %s", load.getOrDefault("cpu", 0.)));
        ...
    }
Run Code Online (Sandbox Code Playgroud)

并且编译失败并出错

[ERROR] WebStatusMonitor.java:[121,66] cannot find symbol
symbol:   method getOrDefault(java.lang.String,java.lang.Double)
location: variable load of type java.util.concurrent.ConcurrentHashMap<java.lang.String,java.lang.Double>
Run Code Online (Sandbox Code Playgroud)

我已经包含了我使用的内容(实际上所有内容都是由Idea自动包含的),这个代码甚至可以在Idea中成功编译.我错过了什么吗?

小智 8

看起来你的IDE使用java 8,你的maven配置为使用java 7.

该方法在java 7中不存在,并且在java 8中存在