【问题标题】:How do I import for all classes in a scala package simultaneously?如何同时导入 scala 包中的所有类?
【发布时间】:2014-08-13 21:54:00
【问题描述】:

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

还有一个名为 Baz 的对象位于名为 com.other 的包中。有没有一种方法可以只使用一个导入语句将 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()
  }
}

我尝试广泛搜索,但我不知道如何表达这种情况。感谢您的帮助。

【问题讨论】:

  • 你试过Foo.scalaimport package.com.example._吗?
  • 你真的是想使用package object吗?

标签: scala import package


【解决方案1】:

您可以尝试将其绑定到 val

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

如果您不希望Baz 对外部可见:

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

【讨论】:

    猜你喜欢
    • 2017-07-02
    • 1970-01-01
    • 2015-09-10
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    • 2014-12-17
    • 1970-01-01
    相关资源
    最近更新 更多