gson Java无法解析符号'Maps'

ldfqzlk8  于 2022-11-06  发布在  Java
关注(0)|答案(1)|浏览(224)

我试图用java中的gson和guava库获得两个JSON文件之间的差异。
我得到的错误:“无法解析符号'Maps'。我的InteliJ安装文件夹的lib文件夹中有Guava库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项目并寻找答案,但我找到的所有解决方案都是关于androidMap的。你能给予我一些关于如何解决这个问题的建议吗,或者建议任何其他的解决方案?非常感谢。

yhqotfr8

yhqotfr81#

首先,在Google的Guava中是Maps::difference,而不是Maps::Difference(通常,我们在Java中从不使用 PascalCase 作为方法名;而 camelCase 是最佳约定)。
第二,作为你的意见,我已经重现了你的问题,有相同的依赖关系:

<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);

工作正常。

相关问题