3

由于 NotNull 特征已被弃用,那么声明我的类不可为空的最佳新方法是什么?

仍然有编译器选项(不防止有人在其他项目中滥用我的库)。以及一些我怀疑 Scala 编译器会尊重的相互冲突的 Java 注释。

4

1 回答 1

2

您根本不应该null在 Scala 中使用,如果不使用,则没有必要使用该NotNulltrait。

如果您有可能具有“无值”的值或变量,请使用Option类型而不是null值。Option有两个子类:SomeNone

// 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")
}
于 2014-02-09T22:09:05.523 回答