[英]How to solve ambiguous reference to overloaded definition
在我使用的库中有重载方法:
put(String key, Integer value)
put(String key, Long value)
put(String key, Double value)
put(String key, Float value)
我正在尝试将String
与Int
值放在那里,但是我收到以下错误:
Error:(41) ambiguous reference to overloaded definition,
both method put in class ContentValues of type (x$1: String, x$2: Double)Unit
and method put in class ContentValues of type (x$1: String, x$2: Float)Unit
match argument types (String,Long)
在那种情况下我该怎么办?
您正在尝试放置Int
,但没有重载方法接受它,因此编译器尝试使用隐式转换。 我的猜测是它看到你可以隐式地将它转换为Double
或Float
,但它不知道使用哪一个。 所以让我们帮忙吧:
val myJavaInteger: java.lang.Integer = myScalaInt
现在使用myJavaInterger调用put,不会产生混淆,因为有一个重载的put方法接受java.lang.Integer
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.