ambiguous reference to overloaded definition(scala与java重载逻辑不匹配)

0.美图

在这里插入图片描述

1.问题

Error:(108, 47) 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 (org.apache.spark.sql.entity.LineageParseResult) and expected result type String
    val response = new Request(url).body(JSON.toJSONString(lineageParseResult)).POST

2.原因

开始在java中,我使用方法

 NodeDto nodeDto = getNodeInfo();
        return new Request(masterPath + "/heartbeat",credentials)
                .body(JSON.toJSONString(nodeDto))
                .POST();

去执行一个远程调用,后来我在scala中也这样执行,就报错了

val url = "http://localhost:8003/dubhe/api/v1/node/checkPrivilegesJsonString"
    val jsonString = JSON.toJSONString(lineageParseResult)
    val response = new Request(url).body(jsonString).POST

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

JSON.toJSONString(map, SerializerFeature.PrettyFormat)

最后代码改成

val url = "http://localhost:8003/dubhe/api/v1/node/checkPrivilegesJsonString"
    val jsonString = JSON.toJSONString(lineageParseResult, SerializerFeature.PrettyFormat)
    val response = new Request(url).body(jsonString).POST

就好了

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九师兄

你的鼓励是我做大写作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值