一个类的定义如下
class InvalidPasswordException(msg: String, cause: Throwable = null)
extends ProviderException(msg, cause)
我正在对此进行匹配,但是无法访问msg
属性。为什么?不是公开的吗?
x match {
case e:InvalidPasswordException =>{
Unauthorized(Json.toJson(JsonResultError(e.msg))) //msg is undefined
}
case _ => {
InternalServerError(Json.toJson(JsonResultError("Internal Server Error. Reason "+x)))
}
}
答案 0 :(得分:2)
您正在定义两个属性,但是两个属性都不可见。尝试将定义更改为此:
class InvalidPasswordException(val msg: String, val cause: Throwable = null)
extends ProviderException(msg, cause)
这样,您还将提供访问器方法。 要添加的另一件事:尝试避免在Scala中使用null;使用Option代替,以将代码中可能的NullPointerException减少到最小。