Avviso: A partire da Scala 2.11, NotNull
obsoleto.Supporto libreria per il tratto NotNull di Scala
Per quanto ho capito, se si desidera un tipo di riferimento per essere non annullabile si devono mixin la magia NotNull
tratto, e il compilatore automaticamente vi impedisce di mettere null
valori -Abilitare in esso. Vedi questo mailing-list thread per esempio.
Ciò che manca è un supporto di libreria decente per tipi non annullabili. Se desidero scrivere un pacchetto che non ha bisogno di interfacciare direttamente il codice java, e voglio impedire a tutti i tipi di questo pacchetto di usare null
per impostazione predefinita, non ho altra scelta che ridefinire tutte le variabili costruite come ad esempio
//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
...
mi aspetto scala di avere (come plugin compilatore, o libreria) l'opzione per me scrivere
import collections.notnull._
al fine di non consentire facilmente null
utilizzo in un file di scala specifica.
Esiste un'opzione per forzare facilmente molti tipi utili nella libreria standard a non rendere nulla?
È possibile prolungare String? Ho pensato che fosse segnato finale. –
In realtà non puoi. Buon punto È necessario definire NString con conversione implicita in stringa, suppongo. –
Immagino che tu cerchi qualcosa come "org.jetbrains.annotations.NotNull' - e mi manca anche quello. – Martin