Поддержка библиотеки для черты NotNull Scala
Обратите внимание: Начиная с версии Scala 2.11,NotNull
не рекомендуется.
Насколько я понимаю, если вы хотите, чтобы ссылочный тип не обнулялся, вы должны смешать магиюNotNull
черта, и компилятор автоматически помешает вам поставитьnull
Возможные значения в нем. Посмотри этопоток рассылки например.
Чего не хватает, так это приличной поддержки библиотек для необнуляемых типов. Если я хотел бы написать пакет, который не должен напрямую взаимодействовать с Java-кодом, и я хочу запретить использование всеми типами в этом пакетеnull
по умолчанию у меня нет выбора, кроме как переопределить все переменные построения, как так
//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.
Есть ли возможность легко заставить многие полезные типы в стандартной библиотеке быть не обнуляемыми?