Java 在类';org.apache.log.Logger';

Java 在类';org.apache.log.Logger';,java,apache,jmeter,beanshell,Java,Apache,Jmeter,Beanshell,从beanshell调用函数。在jar文件中实现的代码 log.info(m.differenceValue(jsonElement1,jsonElement2)); 公共静态映射差异值(JsonElement json1、JsonElement json2){ Gson g=新的Gson(); 类型mapType=newTypeToken(){}.getType(); Map firstMap=g.fromJson(json1,mapType); Map secondMap=g.from

从beanshell调用函数。在jar文件中实现的代码

 log.info(m.differenceValue(jsonElement1,jsonElement2)); 
公共静态映射差异值(JsonElement json1、JsonElement json2){
Gson g=新的Gson();
类型mapType=newTypeToken(){}.getType();
Map firstMap=g.fromJson(json1,mapType);
Map secondMap=g.fromJson(json2,mapType);
返回(mapDifference(firstMap,secondMap));
}      

公共静态映射差异(Map您试图将一个映射传递给,而它只接受字符串等。方法传递给您需要以某种方式将映射转换为字符串


我也不认为你在BeNeS壳中有泛型支持,考虑改为切换。

< P>你试图通过<强> map ,但是它只接受字符串,等等。

我也不认为你在BeNeS壳中有泛型支持,考虑切换到。

尝试<代码> log .FIN(M.DealEngEngE1(JSONELMENT1,JSONELMENT2).toSTRIGN());< /Cord>< /P> 根据文档,这可能适用于HashMap(取决于那里的键和值)

公共字符串toString()

返回此映射的字符串表示形式。 字符串表示法由中的键值映射列表组成 由映射的entrySet视图的迭代器返回的顺序,包含在 大括号(“{}”)。相邻映射由字符“,”分隔 (逗号和空格)。每个键值映射都呈现为键 后跟等号(“=”),后跟关联值。 键和值按String.valueOf(对象)转换为字符串

尝试
log.info(m.differenceValue(jsonElement1,jsonElement2.toString());

根据文档,这可能适用于HashMap(取决于那里的键和值)

公共字符串toString()

返回此映射的字符串表示形式。 字符串表示法由中的键值映射列表组成 由映射的entrySet视图的迭代器返回的顺序,包含在 大括号(“{}”)。相邻映射由字符“,”分隔 (逗号和空格)。每个键值映射都呈现为键 后跟等号(“=”),后跟关联值。 键和值按String.valueOf(对象)转换为字符串


Hi Yuri感谢共享的解决方案。它现在正在打印数据没有问题。如果您认为它解决了问题,请接受答案。:-)Hi Yuri感谢共享的解决方案。现在正在打印数据没有问题。如果您认为答案能解决问题,请接受答案。:-)
public static <K, V> Map<String,Object> differenceValue(JsonElement json1, JsonElement json2){
    Gson g = new Gson();

    Type mapType = new TypeToken<Map<String, Object>>(){}.getType();
    Map<String,Object> firstMap = g.fromJson(json1, mapType);
    Map<String, Object> secondMap = g.fromJson(json2, mapType);
   return(mapDifference(firstMap,secondMap));
}      
public static <K, V> Map<K, V> mapDifference(Map<? extends K, ? extends V> left, Map<? extends K, ? extends V> right) {
    Map<K, V> difference =  new HashMap<K, V>();
    difference.putAll(left);
    difference.putAll(right);
    difference.entrySet().removeAll(right.entrySet());
    return difference;
}