Scala 为什么我无法访问对象';s属性
类的定义如下Scala 为什么我无法访问对象';s属性,scala,Scala,类的定义如下 class InvalidPasswordException(msg: String, cause: Throwable = null) extends ProviderException(msg, cause) 我正在对其进行匹配,但无法访问msg属性。为什么?它不是公共的吗 x match { case e:InvalidPasswordException =>{ Unauthori
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)))
}
}
您正在定义这两个属性,但它们都不可见。尝试将定义更改为:
class InvalidPasswordException(val msg: String, val cause: Throwable = null)
extends ProviderException(msg, cause)
这样,您也可以提供访问器方法。
还有一点需要补充:尽量避免在Scala中使用null;使用选项将代码中可能出现的NullPointerException降至最低。您正在定义这两个属性,但对它们都不可见。尝试将定义更改为:
class InvalidPasswordException(val msg: String, val cause: Throwable = null)
extends ProviderException(msg, cause)
这样,您也可以提供访问器方法。
还有一点需要补充:尽量避免在Scala中使用null;改为使用选项,以将代码中可能出现的NullPointerException降至最低