访问scala中的伴随对象内部的对象

时间:2014-10-21 19:45:17

标签: scala companion-object

我有以下内容:

case class Location(name: String, level: Location.Level)

object Location {
  trait Level
  case object City extends Level
  case object State extends Level
}

如果我尝试访问City(来自其他源文件),我会收到类似

的错误
found   : model.Location.City.type
required: model.Level

我可以想到一些解决方法,但我想知道是否有办法保持我的名字相同,即我想通过输入{{City来访问Location.City 1}}。

编辑:

我这样访问它:

import the.package.name._
Location.City

1 个答案:

答案 0 :(得分:2)

您的错误消息说明了一切:您不是要求Location.Level而是model.Level,其中model必须是您的某个套餐或某个值,并且您有一条路径 - 依赖类型。因此,您必须在代码中使用其他类型Level