如何同时导入scala包中的所有类?

时间:2014-06-23 18:39:27

标签: scala import package

考虑包com.example。在内部包com.example中,我们有两个名为Foo和Bar的类。

还有一个名为Baz的对象位于名为com.other的包中。有没有办法只使用一个import语句将Baz导入Foo和Bar?换句话说,如何定义影响包(com.example)中所有类(Foo和Bar)的导入块?

我尝试了以下操作,但它无效。

// filename:package.scala location:com/example
package com { 
  package object example {
    import other.Baz
  }
}

// filename:Foo.scala location:com/example
package com.example {
  class Foo { 
    // Baz should be in scope here
    Baz.methodCall()
  }
  class Bar {
    // Baz should be in scope here too
    Baz.methodCall()
  }
}

我尝试了广泛搜索,但我不确定如何说出这种情况。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您可以尝试将其绑定到val

package com { 
  package object example {
    val Baz = other.Baz
  }
}

如果您不希望Baz在外面可见:

package com { 
  package object example {
    private[example] val Baz = other.Baz
  }
}