Suporte de biblioteca para o traço NotNull do Scala
Aviso prévio: A partir do Scala 2.11,NotNull
está obsoleto.
Tanto quanto eu entendo, se você quiser um tipo de referência para ser não anulável você tem que misturar a magiaNotNull
traço, eo compilador irá automaticamente impedi-lo de colocarnull
valores possíveis nele. Veja issothread de lista de discussão por exemplo.
O que falta é um suporte de biblioteca decente para tipos não anuláveis. Se eu gostaria de escrever um pacote que não precisa interagir diretamente com código java, e eu quero evitar que todos os tipos neste pacote usemnull
por padrão, não tenho escolha a não ser redefinir todas as variáveis de builting assim
//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
...
Espero que o scala tenha (como um plugin de compilador, ou biblioteca) a opção para eu escrever
import collections.notnull._
a fim de facilmente proibirnull
uso em um arquivo scala específico.
Existe uma opção para forçar facilmente muitos tipos úteis na biblioteca padrão para não serem anuláveis?