想象一下,我有以下类定义:
class Foo[T]
我想做以下
def bar(x:Foo[ =>Int ]):Int = ???
但编译器失败,“此处不允许使用by-name参数类型”
如何使用通配名类型作为通用方法的类型参数?
答案 0 :(得分:9)
你必须提供自己的懒惰包装。像这样:
class Lazy[T](wrp: => T) {
lazy val value: T = wrp
}
然后:
def bar(x: Foo[Lazy[T]]): Int = ???