2014-12-06 63 views
1

library我使用有重載的方法:如何解決曖昧參考超載定義

  • 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) 

我該怎麼辦呢?

回答

3

您試圖放置一個Int,但沒有重載方法,因此編譯器會嘗試使用隱式轉換。我的猜測是,它看到你可以隱式地將其轉換爲DoubleFloat,但它不知道使用哪一個。因此,讓我們來幫它:

val myJavaInteger: java.lang.Integer = myScalaInt 

立即致電與myJavaInterger投入,就不會有混亂,因爲有它接受java.lang.Integer重載put方法。