由於NotNull特徵已被棄用,聲明我的類不可空的新的最佳方式是什麼?確保Scala中的notnull類?
仍然有編譯器選項(不會阻止別人在其他項目中濫用我的庫)。除了少數衝突的Java註釋之外,我懷疑Scala編譯器會尊重它。
由於NotNull特徵已被棄用,聲明我的類不可空的新的最佳方式是什麼?確保Scala中的notnull類?
仍然有編譯器選項(不會阻止別人在其他項目中濫用我的庫)。除了少數衝突的Java註釋之外,我懷疑Scala編譯器會尊重它。
您不應該在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")
}
我在Java中也不使用null。我想阻止其他人使用null。 – user833970
使用'null'不是慣用的Scala,所以一般Scala程序員不會使用'null'。 – Jesper
創建錯誤不是慣用的Scala - 但它們仍然會發生。 –
ScalaDoc和源代碼(對於2.10.x)均不提示NotNull。 –
@RandallSchulz從2.11開始不推薦使用(尚未發佈)。 – Jesper