/** 输出结果如下,可见这里的x真正的赋值时间
* 是作为参数传给方法体的时间,即在方法体内
* 传入方法的时候,和方法内是否使用该参数无
* 关。
* 1663921854436
* 1663921859439
* 1663921864439
* -----> There used x : 1663921859439
* @param args none used
*/
def main(args: Array[String]): Unit = {
lazy val x = System.currentTimeMillis()
println(System.currentTimeMillis())
Thread.sleep(5000)
lazyInit1(x)
lazyInit2(x)
}
def lazyInit1(x: Long): Unit = {
println(System.currentTimeMillis())
Thread.sleep(5000)
}
def lazyInit2(x: Long): Unit = {
println(System.currentTimeMillis())
Thread.sleep(5000)
println("-----> There used x : " + x)
}
Scala lazy 变量的实际调用时间
最新推荐文章于 2024-05-23 14:59:13 发布