我在下面设置了一个隐式绑定,期望 TweetProvider 特征将绑定到 FancyRestaraunt (即用于模拟推特的玩具应用程序)饲料,人们在花哨的餐厅吃饭后会发出推文。
但是,似乎我创建的隐式绑定没有被利用。
有关此实施方式不正确的任何想法?
import scala.Product
import scala.io.BytePickle.PU
import scala.tools.cmd.ParserUtil
trait TweetProvider[Prod] {
def getTweet(a:Prod): String;
}
class FancyRestaurant {
def name(){
"Fancy Restaurant"
}
}
class RestaurantTweetosphere {
def getTweet[Prod]
(prod : Prod)
(implicit product : TweetProvider[Prod])
= product.getTweet(prod);
implicit val FancyRestaurantTweet = new TweetProvider[FancyRestaurant]{
def getTweet(r : FancyRestaurant) = {
"OMG I love this "+r.name();
}
}
def run() = {
val c = new FancyRestaurant;
c.getTweet() // <-- doesnt compile
}
}