3 回答

TA貢獻(xiàn)1804條經(jīng)驗 獲得超3個贊
case class Scheduled(time : Int, callback : => Unit)
case
val
case
val callback
lazy val callback
.
callback: () => Unit
val callback
Scheduled(40, println("x") )
case
apply
class Scheduled(val time: Int, val callback: () => Unit) { def doit = callback()}object Scheduled { def apply(time: Int, callback: => Unit) = new Scheduled(time, { () => callback })}
scala> Scheduled(1234, println("x"))res0: Scheduled = Scheduled@5eb10190 scala> Scheduled(1234, println("x")).doit x

TA貢獻(xiàn)1835條經(jīng)驗 獲得超7個贊
class Scheduled(time: Int, cb: => Unit) { private def runCb = cb}object Scheduled { def apply(time: Int, cb: => Unit) = { val instance = new Scheduled(time, cb) Thread.sleep(time*1000) instance.runCb }}
scala> Scheduled(10, println("a")); Scheduled(1, println("b"))a b
添加回答
舉報