Remarque: A partir de Scala 2.11, NotNull
est déprécié. Pour autant que je sache, si vous voulez qu'un type de référence soit non nul, vous devez mélanger le trait magique NotNull
, et le compilateur vous empêchera automatiquement d'y mettre des valeurs-null
-able. Voir ce mailing-list thread par exemple.Prise en charge de la bibliothèque pour le trait NotNull de Scala
Ce qui manque, c'est un support de bibliothèque décent pour les types non nullable. Si je veux écrire un paquet qui n'a pas besoin d'interfacer le code Java directement, et que je veux empêcher tous les types dans ce paquet d'utiliser null
par défaut, je n'ai pas d'autre choix que de redéfinir toutes les variables de construction comme
//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
...
je me attends scala d'avoir (comme un plug-in de compilateur, ou d'une bibliothèque) option pour moi d'écrire
import collections.notnull._
afin d'interdire l'utilisation facilement null
dans un fichier scala spécifique.
Existe-t-il une option pour forcer facilement de nombreux types utiles dans la bibliothèque standard à ne pas être nullable?
Vous pouvez étendre String? Je pensais que c'était marqué final. –
En fait vous ne pouvez pas. Bon point. Besoin de définir NString avec une conversion implicite en chaîne, je suppose. –
Je suppose que vous cherchez quelque chose comme 'org.jetbrains.annotations.NotNull' - et cela me manque aussi. – Martin