trait TestTrait1 {
val arguments1: Array[String] = Array("1","2")
}
trait TestTrait {
val arguments: Array[String]
val len = arguments.length
}
, TestTrait len, . args def App, null. len lazy val def, NPE.
REPL:
scala> :paste
trait TestTrait {
def arguments: Array[String]
lazy val len = arguments.length
}
object NewObject extends App with TestTrait {
override lazy val arguments = super.args
}
defined trait TestTrait
defined object NewObject
scala> NewObject
res0: NewObject.type = NewObject$@5ace1ed4
scala> NewObject.arguments
res1: Array[String] = null
, len, :
scala> NewObject.len
java.lang.NullPointerException
at TestTrait$class.len(<console>:12)
at NewObject$.len$lzycompute(<console>:15)
at NewObject$.len(<console>:15)
... 33 elided
, : len lazy val, def, NewObject. NewObject a class trait, , / len, NPE.