开发者

How do I idiomatically handle null checks from within Scala/Lift?

开发者 https://www.devze.com 2023-01-21 03:18 出处:网络
Even with the prevalence of the Box and Option monads, we still have to check for null values here and there.The best I\'ve come up with so far is by using the Box#!! method:

Even with the prevalence of the Box and Option monads, we still have to check for null values here and there. The best I've come up with so far is by using the Box#!! method:

(Box !! possiblyNull).map(_.toString).openOr("")

Is there a better way to do this? I tried using Box's apply method:

Box(possiblyNull).map(_.toString).openOr(开发者_开发技巧"")

But the compiler complained of an ambiguous reference to an overloaded definition, specifically:

[InType,OutType](value: InType)
(pf: PartialFunction[InType,OutType])net.liftweb.common.Box[OutType]

I'm not sure why that's happening, but I was hoping there would be a shorter, more concise way of saying "Give me the value of this string, or just "". I was considering using tryo, but thought it wasteful to deal with an exception when it could be avoided.


I don't know what Box is about. But here goes a simple example using Option:

scala> val str1:String="abc"
str1: String = abc

scala> val str2:String=null
str2: String = null

scala> Option(str1).getOrElse("XXX")
res0: String = abc

scala> Option(str2).getOrElse("XXX")
res1: String = XXX
0

精彩评论

暂无评论...
验证码 换一张
取 消