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降至最低