簡體   English   中英

Java 無法解析符號“地圖”

[英]Java cannot resolve symbol 'Maps'

我正在嘗試使用 java 中的 gson 和 guava 庫來獲取兩個 JSON 文件之間的差異。

我收到錯誤消息:“無法解析符號‘地圖’。我的 InteliJ 安裝文件夾中的 lib 文件夾中有番石榴庫 jar 文件,pom.xml 文件中的依賴項如下所示:

        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>31.0.1-jre</version>
        </dependency>

創建 diff 的函數如下所示

public static Map<String, Object> newCompare(JsonElement original, JsonElement output){
    Type type = new TypeToken<Map<String, Object>>(){}.getType();

    Map<String, Object> leftMap = gson.fromJson(original, type);
    Map<String, Object> rightMap = gson.fromJson(output, type);
    return Maps.Difference(leftMap, rightMap);
}

我嘗試重新導入所有 maven 項目並尋找答案,但我找到的所有解決方案都與 android 地圖有關。 你能給我一些關於如何解決這個問題的建議,或者提出任何其他解決方案嗎? 非常感謝。

首先,它是 Google Guava 中的Maps::difference ,而不是Maps::Difference (通常,我們從不使用PascalCase作為 Java 中的方法名稱;而駝峰命名是最好的約定)。

其次,根據您的評論,我已經通過相同的依賴重現了您的問題:

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>31.0.1-jre</version>
</dependency>

和進口

import com.google.common.collect.Maps;

之后,

Map<String, String> map1 = new HashMap<>();
Map<String, String> map2 = new HashMap<>();

Maps.difference(map1, map2);

工作得很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM