我试图用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的。你能给予我一些关于如何解决这个问题的建议吗,或者建议任何其他的解决方案?非常感谢。
1条答案
按热度按时间yhqotfr81#
首先,在Google的Guava中是
Maps::difference
,而不是Maps::Difference
(通常,我们在Java中从不使用 PascalCase 作为方法名;而 camelCase 是最佳约定)。第二,作为你的意见,我已经重现了你的问题,有相同的依赖关系:
和导入
在此之后,
工作正常。