【问题标题】:ambiguous reference to overloaded definition when call method in java libraryjava库中调用方法时对重载定义的模糊引用
【发布时间】:2016-11-10 03:59:00
【问题描述】:
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$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.HashMap[CharSequence,CharSequence])
val ret = JSON.toJSONString(map)

【问题讨论】:

标签: java scala reference ambiguous


【解决方案1】:

由于某种原因,Scala 重载逻辑与 Java 逻辑不匹配。你必须这样称呼它:

JSON.toJSONString(map, SerializerFeature.PrettyFormat)

祝你有美好的一天!

【讨论】:

    【解决方案2】:

    掌声!

    args SerializerFeature.EMPTY: _* 作为默认格式!

    val jsonString = JSON.toJSONString(obj, SerializerFeature.EMPTY: _*)
    

    参考:https://github.com/alibaba/fastjson/issues/1282#issuecomment-624461007

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-17
      • 2017-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-23
      • 1970-01-01
      相关资源
      最近更新 更多