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 に答える