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?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage