Bibliotheksunterstützung für Scalas NotNull-Eigenschaft
Beachten: Ab Scala 2.11NotNull
ist veraltet.
Soweit ich weiß, müssen Sie die Magie einmischen, wenn Sie möchten, dass ein Referenztyp nicht auf Null gesetzt werden kannNotNull
Merkmal, und der Compiler wird automatisch verhindern, dass Sie setzennull
-fähige Werte drin. Sieh dir das anMailinglisten-Thread zum Beispiel.
Was fehlt, ist eine anständige Bibliotheksunterstützung für nicht nullfähige Typen. Wenn ich ein Paket schreiben möchte, für das kein Java-Code direkt verwendet werden muss, und ich verhindern möchte, dass alle Typen in diesem Paket verwendet werdennull
Standardmäßig habe ich keine andere Wahl, als alle Building-Variablen wie folgt neu zu definieren
//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
...
Ich erwarte, dass Scala (als Compiler-Plugin oder Bibliothek) eine Schreiboption für mich hat
import collections.notnull._
um leicht zu verbietennull
Verwendung in einer bestimmten Scala-Datei.
Gibt es eine Option, mit der viele nützliche Typen in der Standardbibliothek problemlos als nicht nullwertfähig erzwungen werden können?