由于NotNull特性已被弃用,声明我的类不可为空的新方法是什么?
仍然存在编译器选项(不会阻止某人在其他项目中滥用我的库)。除了少数冲突的Java注释,我怀疑Scala编译器会尊重它。
答案 0 :(得分:2)
你根本不应该在Scala中使用null
,如果不这样做,则没有必要使用NotNull
特征。
如果您的值或变量可以包含“无值”,请使用Option
类型而不是null
值。 Option
有两个子类:Some
和None
。
// text is "None", which means it has no value
var text: Option[String] = None
// Use "Some" when it should have a value
text = Some("Hello World")
Option
有很多有用的方法;它可以(或多或少)被视为具有零个或一个元素的集合,因此您可以在其上调用常用的集合方法,并且可以将它与模式匹配一起使用。
text match {
case Some(s) => println("Text: " + s)
case None => println("Empty")
}