0
比方說,我有一個類型的類泛型類型的類實例的性能
trait CanMeow[T] {
def meow(t:T):String
}
現在我有一個不同類型的類
trait IsCatEquivalent[T] {
def makeSound(t:T):String
def isAlive(t:T):Boolean
}
現在我想讓CanMeow型類的每個CatEquivalent成員。我能做的是
implicit def catEquivalentCanMeow[T](implicit ce:IsCatEquivalent[T]) = new CanMeow[T] {
def meow(t:T) = ce.makeSound(t)
}
這是如何影響性能的?從每次使用類型爲CanMeow [T]的隱式參數調用某個方法的外觀時,都會構造一個新對象。是這樣嗎?如果這款產品足夠便宜,不值得緩存實例?
其他問題:有沒有更好的方法來做到這一點? (使一個類擴展另一個類可能不是一個選項,例如,如果它們來自不同的庫)
謝謝,我應該想到隱式轉換。 –