注意事项:由于斯卡拉2.11, NotNull
已经过时了。
据我了解,如果你想引用类型为非空的,你必须混入魔法NotNull
特点,编译器会自动阻止你把null
-able值了。 看到这个邮件列表线程的实例。
什么欠缺的是,对于非可空类型一个像样的图书馆的支持。 如果我想编写一个包,不需要直接接口的Java代码,我想阻止这个包中的所有类型使用null
默认情况下,我别无选择,只能重新定义所有builting变量,像这样
//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
...
我希望斯卡拉有(如编译器插件,或库)选项我写
import collections.notnull._
为了容易不允许null
在一个特定的文件阶使用。
是否有一个选项可以轻松地迫使许多有用的类型在标准库是不是空的?