【问题标题】:Java compilation error: cannot find symbolJava编译错误:找不到符号
【发布时间】:2015-07-06 10:13:20
【问题描述】:

我有一段代码在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.)));
        ...
    }

编译失败并出现错误

[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>

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

【问题讨论】:

    标签: java maven compiler-errors


    【解决方案1】:

    看起来您的 IDE 使用 java 8,而您的 maven 配置为使用 java 7。

    方法does not exist in java 7does exist in java 8

    【讨论】:

    • 不明白这个答案。 ConcurrentHashMap 似乎存在于 java 7 中,不是吗?
    • 再次查看错误信息...与课程本身无关
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-31
    • 2013-12-06
    • 2013-10-04
    • 2012-08-27
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多