Примечание: Как и в случае с Scala 2.11, NotNull
устарел.
Насколько я понимаю, если вы хотите, чтобы ссылочный тип не был нулевым, вам нужно смешать магическую черту NotNull
, и компилятор автоматически помешает вам помещать в нее null
-able значения. См. поток списка рассылки, например.
То, что не хватает, - это достойная поддержка библиотеки для типов с нулевыми значениями. Если я хотел бы написать пакет, который не обязательно должен напрямую связывать Java-код, и я хочу, чтобы по умолчанию все типы в этом пакете не использовали null
, у меня нет выбора, кроме как переопределить все переменные builting, например, так
//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
...
Я ожидаю, что Scala будет иметь (как плагин компилятора или библиотеку) вариант для меня написать
import collections.notnull._
чтобы легко запретить использование null
в конкретном файле Scala.
Есть ли возможность легко заставить многие полезные типы в стандартной библиотеке быть непустыми?