本文介绍了Scala Option(null)预期为None,但我得到了Some(0)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

val i: java.lang.Integer = null
val o: Option[Int] = Option(i) // This yields Some(0)

null: java.lang.Integer转换为Scala Option[Int]的安全方法是什么?

What is the safe way to convert null: java.lang.Integer to Scala Option[Int]?

推荐答案

您正在混合Intjava.lang.Integer这样

val i: java.lang.Integer = null
val o: Option[Int] = Option(i)

隐式转换为

val o: Option[Int] = Option(Integer2int(i))

将变为

val o: Option[Int] = Option(null.asInstanceOf[Int])

因此

val o: Option[Int] = Some(0)

如果要使用java.lang.Integer,请写

val o: Option[java.lang.Integer] = Option(i)
// o: Option[Integer] = None

这篇关于Scala Option(null)预期为None,但我得到了Some(0)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-06 09:20