0
說我定義與隱式轉換下列類方法的類:如何做隱式轉換到具有相同的名稱
abstract class Holder[K, V] {
var map = Map[K, V]()
def key(v: V): K
def get(v: V) = map.get(key(v))
}
implicit def toMap[K, V](holder: Holder[K, V]): Map[K, V] = holder.map
我嘗試這樣使用它:
val holder = new Holder[Long, String] {
def key(str: String) = str.toLong
}
holder.get("3")
toMap(holder).get(3)
holder.get(3)
編譯將在最後一行失敗,因爲隱式轉換無法解析。我猜這是因爲類Holder已經包含方法get()。有沒有一種方法可以實現隱式轉換爲具有相同命名方法的類?