我有以下包装对象,其中声明了val
package au.com.someproject.protocol
package object helpers {
val etcdRoot = "someproject.com.au"
}
当我将API导入另一个项目并尝试访问我遇到的变量并出现以下错误时,此包对象被声明为API的一部分
[error] /home/user/git/company/project/project-agent/src/main/scala/au/com/someproject/project_agent/cluster/StatusMonitor.scala:52: not found: value etcdRoot
[error] etcdClient.setKey(s"$etcdRoot/kumo/peers/${systemCluster.selfAddress.host.get}", systemCluster.selfAddress.port.get.toString, new Some(40.seconds))
我是这样导入变量的,除了应该完成之外我该怎么做
import au.com.someproject.protocol.helpers._
但是我得到了错误,是否有我在做声明或导入时出错?
答案 0 :(得分:2)
通常是包对象的捕获,它们必须手动放在包文件夹中,这意味着我希望你的目录结构在导入工作之前看起来像这样。
src/main/scala/au/com/someproject/protocol/helpers/helpers.scala
在helpers/
内,您可以定义package object
。有时候你很想拥有它,如下所示:
src/main/scala/au/com/someproject/protocol/helpers.scala
上述内容并未实际定义package object
包上的helpers
,您需要遵循特定的目录结构并在定义{package
之前手动定义package object
在它里面。}