在 java 库中调用方法时对重载定义的引用不明确
ambiguous reference to overloaded definition when call method in java library
import com.alibaba.fastjson.JSON
object test {
def main(args: Array[String]) = {
val map = new util.HashMap[CharSequence, CharSequence]()
map.put("123", "22333")
map.put("test", null)
val ret = JSON.toJSONString(map)
println(ret)
}
}
toJSONString
功能:
public static String toJSONString(Object object) {
return toJSONString(object, emptyFilters, new SerializerFeature[0]);
}
public static String toJSONString(Object object, SerializerFeature... features) {
return toJSONString(object, DEFAULT_GENERATE_FEATURE, features);
}
错误:
Error:ambiguous reference to overloaded definition,both method toJSONString in object JSON of
type (x: Any, x: com.alibaba.fastjson.serializer.SerializerFeature*)String
and method toJSONString in object JSON of
type (x: Any)String
match argument types (java.util.HashMap[CharSequence,CharSequence])
val ret = JSON.toJSONString(map)
出于某种原因,Scala 重载逻辑与 Java 逻辑不匹配。你必须这样称呼它:
JSON.toJSONString(map, SerializerFeature.PrettyFormat)
祝你有愉快的一天!
鼓掌!
args SerializerFeature.EMPTY: _*
作为默认格式!
val jsonString = JSON.toJSONString(obj, SerializerFeature.EMPTY: _*)
参考文献:https://github.com/alibaba/fastjson/issues/1282#issuecomment-624461007
import com.alibaba.fastjson.JSON
object test {
def main(args: Array[String]) = {
val map = new util.HashMap[CharSequence, CharSequence]()
map.put("123", "22333")
map.put("test", null)
val ret = JSON.toJSONString(map)
println(ret)
}
}
toJSONString
功能:
public static String toJSONString(Object object) {
return toJSONString(object, emptyFilters, new SerializerFeature[0]);
}
public static String toJSONString(Object object, SerializerFeature... features) {
return toJSONString(object, DEFAULT_GENERATE_FEATURE, features);
}
错误:
Error:ambiguous reference to overloaded definition,both method toJSONString in object JSON of
type (x: Any, x: com.alibaba.fastjson.serializer.SerializerFeature*)String
and method toJSONString in object JSON of
type (x: Any)String
match argument types (java.util.HashMap[CharSequence,CharSequence])
val ret = JSON.toJSONString(map)
出于某种原因,Scala 重载逻辑与 Java 逻辑不匹配。你必须这样称呼它:
JSON.toJSONString(map, SerializerFeature.PrettyFormat)
祝你有愉快的一天!
鼓掌!
args SerializerFeature.EMPTY: _*
作为默认格式!
val jsonString = JSON.toJSONString(obj, SerializerFeature.EMPTY: _*)
参考文献:https://github.com/alibaba/fastjson/issues/1282#issuecomment-624461007