延迟Scala中的val定义

igr*_*igr 3 scala

有以下内容:

    var jdt : JDateTime = null

    try {
        jdt = new JDateTime(timeString, "YYYY-MM-DD hh:mm:ss,mss")
    } catch {
        case e : Exception => return Option.empty
    }
Run Code Online (Sandbox Code Playgroud)

我想jdtval的,因为它是一个恒定值.有没有scala语法技巧可以在这里工作?喜欢,如果例外,设置null

knu*_*ker 9

不是语法技巧,只是库使用:

import scala.util.Try

val jdt = Try(new JDateTime(timeString, "YYYY-MM-DD hh:mm:ss,mss")).toOption.orNull
Run Code Online (Sandbox Code Playgroud)

虽然,我建议Option不要使用它null.

  • 我反对使用orNull - 更好的解决方案是将JDateTime包装在Try或其他满足您需求的数据类型中,例如Option或\ / (2认同)