Tag: 斯卡拉 2.11

我怎样才能防止一个Scala函数接收'null'作为参数

我有这个签名的Scala方法: def m (map: Map [String, _]) 我想Map是一个引用类型,因此,我可以调用m传递null m (null) // Allowed call 有没有办法让编译器不允许null是一些方法调用? 像Kotlin这样的其他语言可以明确地说明一个参数可以为null: http : //kotlinlang.org/docs/reference/null-safety.html 在Scala中有这样的东西吗? 编辑:谢谢你的意见。 我知道'空'引用是一个运行时间的问题,但其他语言与其他类型的系统在编译时考虑到这一点。 我只想知道在Scala中是否还有一种方法(我正在开始使用该语言)。 检查评论,答案和斯卡拉类型层次我客人这是不可能的。 对于值对象(像不可变集合和大小写类),避免'null'是有意义的(但是它们扩展了AnyRef )。 我可以尝试避免'空',但是例如,如果找不到键,Map.get返回'null',所以我必须处理这个。 关于Map[String, _]它是一个异构的映射,把它想象成一个JSON对象。 我可以用另一种更像Scala的方式处理这个问题吗? 谢谢!