注意:从 Scala 2.11 开始,NotNull
已弃用。
据我了解,如果您希望引用类型不可为空,则必须混合魔术NotNull
特性,编译器会自动阻止您将null
-able 值放入其中。例如,请参阅此邮件列表线程。
缺少的是对不可为空类型的体面的库支持。如果我想编写一个不需要直接接口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 文件中使用。
是否有一个选项可以轻松地强制标准库中的许多有用类型不可为空?