为什么我无法访问对象的属性

时间:2018-09-24 16:47:41

标签: scala

一个类的定义如下

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)))
                    }
                  }

1 个答案:

答案 0 :(得分:2)

您正在定义两个属性,但是两个属性都不可见。尝试将定义更改为此:

class InvalidPasswordException(val msg: String, val cause: Throwable = null)
  extends ProviderException(msg, cause)

这样,您还将提供访问器方法。 要添加的另一件事:尝试避免在Scala中使用null;使用Option代替,以将代码中可能的NullPointerException减少到最小。