我有一个val
:
val something = System.nanoTime
然后经过一系列方法调用:
foo(something) {
bar(something, 2) { etc }
}
我想将val
解决方案推迟到最后一个实际使用它的方法。我知道 scala 的lazy
修饰符,但似乎something
作为参数传递会自动解析它的值,无论变量是否在该方法中被使用。
到目前为止,我的(有点丑陋的)解决方案是:
val something = () => System.nanoTime
虽然这可行,但它涉及更改所有方法签名,在这种情况下从Long
到() => Long
。我想可能有一种更优雅的方法来解决它,你们怎么看?