5

想象一下,我有以下类定义:

class Foo[T]

我想做以下事情

def bar(x:Foo[ =>Int ]):Int = ???

但编译器因“此处不允许使用名称参数类型”而失败

如何使用按名称类型作为泛型方法的类型参数?

4

1 回答 1

9

您必须提供自己的惰性包装器。像这样的东西:

class Lazy[T](wrp: => T) {
  lazy val value: T = wrp
}

进而:

def bar(x: Foo[Lazy[T]]): Int = ???
于 2012-11-16T12:06:15.463 回答