4
我发现我偶尔想要在特质或其他地方写一个任意的断言,但是我想断言的东西还没有完全定义。特质中的惰性断言
trait Foo {
val aList: List[String]
val anotherList: List[String]
def printPairs = aList.zip(anotherList).foreach(println)
assert(aList.size == anotherList.size) // NullPointerException, because these references are undefined right now.
}
我想的是什么我要找的是(总是)后级大火被完全定义和实例化一个钩的推广,因为这是哪门子的检查,我一般会把在构造函数。
我认为七分钟直到回答是我的记录。你说得对,这不是我想到的,但它非常接近。扩展类必须执行Early Definition子句,否则断言将失败,并且子句必须通过断言,否则断言将失败。无论哪种方式,只有断言存活的类才能被实例化。 – randomstatistic
对于如何在Scala中实现这个问题,你可以经常看到2分钟的答案,有相当多的声望猎手,你可以让你松懈;)很高兴它有帮助! –
'class Bar(val aList:List [String],val anotherList:List [String])扩展Foo'(一个稍微干净的版本) – jwvh