ScalaShi用FastJson报错:对重载方法的歧义应用的错误
完整的报错信息如下:
Error:(24, 28) ambiguous reference to overloaded definition,
both method toJSONString in object JSON of type (x$1: Any, x$2: com.alibaba.fastjson.serializer.SerializerFeature*)String
and method toJSONString in object JSON of type (x$1: Any)String
match argument types (java.util.Map[String,String]) and expected result type String
val str: String = JSON.toJSONString(map)
目的:想将map类型转换为String类型
代码如下:
val map: Map[String, Int] = Map("a" -> 1, "b" -> 2, "c" -> 3)
val mapStr: String = JSON.toJSONString(map)
println(mapStr)
报错原因:
因为JSON对象里面有很多toJSONString的重载方法:
第一个和第二个方法中,两个方法的第一个传入参数都是相同的,区别在于第二个传入的参数。可以看到第二个方法当中传入的参数是一个可变长度的参数。所以我