Obsługa bibliotek dla cechy NotNull Scali
Ogłoszenie: Od Scala 2.11,NotNull
jest przestarzałe.
O ile rozumiem, jeśli chcesz, aby typ odniesienia był niezawodny, musisz wymieszać magięNotNull
cecha, a kompilator automatycznie uniemożliwi wprowadzenienull
możliwe wartości. Zobaczwątek listy dyskusyjnej na przykład.
Czego brakuje, to przyzwoita obsługa bibliotek dla typów niezawierających wartości null. Jeśli chciałbym napisać pakiet, który nie wymaga bezpośredniego interfejsu kodu Java, i chcę zapobiec używaniu wszystkich typów w tym pakiecienull
domyślnie nie mam innego wyboru, jak przedefiniować wszystkie zmienne builtingu w ten sposób
//can't actually do that, but just to give the general idea
class NString extends String with NotNull
class NMap[X,Y] extends Map[X,Y] with NotNull
...
Spodziewam się, że scala będzie miała (jako wtyczkę kompilatora lub bibliotekę) opcję do napisania
import collections.notnull._
w celu łatwego odrzucenianull
użycie w określonym pliku scala.
Czy istnieje możliwość łatwego wymuszenia, aby wiele użytecznych typów w standardowej bibliotece nie było pustych?