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)
暗黙の変換を解決できないため、最後の行でコンパイルが失敗します。私はこれは、クラスのホルダーにすでにget()メソッドが含まれているためだと推測しています。同じ名前のメソッドを持つクラスへの暗黙の変換を実現する方法はありますか?