Aviso: A partir de Scala 2.11, NotNull
está obsoleto.Soporte de biblioteca para el rasgo NotNull de Scala
Por lo que yo entiendo, si quieres un tipo de referencia sea no anulable que tienen que mixin la NotNull
rasgo de la magia, y el compilador le impedirá automáticamente poner null
valores -able en ella. Vea esto mailing-list thread por ejemplo.
Lo que falta es un soporte de biblioteca decente para tipos que no admiten nulos. Si me gustaría escribir un paquete que no necesita interconectar código java directamente, y quiero evitar que todos los tipos en este paquete utilicen null
de manera predeterminada, no tengo más remedio que redefinir todas las variables de compilación como
//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
...
que esperar a Scala tiene (como plugin del compilador, o biblioteca) opción para mí escribir
import collections.notnull._
con el fin de no permitir fácilmente null
uso en un archivo específico Scala.
¿Existe una opción para forzar fácilmente a muchos tipos útiles en la biblioteca estándar para que no sean anulables?
Puede extender String? Pensé que estaba marcado como final. –
En realidad no puedes. Buen punto. Necesito definir NString con conversión implícita a cadena, supongo. –
Supongo que buscas algo como 'org.jetbrains.annotations.NotNull' - y yo también echo de menos eso. – Martin