繁体   English   中英

如何解决对重载定义的模糊引用

[英]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)

我正在尝试将StringInt值放在那里,但是我收到以下错误:

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 ,但没有重载方法接受它,因此编译器尝试使用隐式转换。 我的猜测是它看到你可以隐式地将它转换为DoubleFloat ,但它不知道使用哪一个。 所以让我们帮忙吧:

val myJavaInteger: java.lang.Integer = myScalaInt

现在使用myJavaInterger调用put,不会产生混淆,因为有一个重载的put方法接受java.lang.Integer

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM