将包导入为另一个

时间:2012-12-11 22:35:08

标签: scala import package

假设我有一个包含com.example.a.b.c包含大量案例类的Scala项目。我想将所有这些类导入到包com.example.c(其中包含一些非冲突的案例类),以便在我的项目中的任何其他地方,我只需要import com.example.c._来使用每个案例类来自com.example.ccom.example.a.b.c

我该怎么做?

2 个答案:

答案 0 :(得分:8)

有关于添加 export 机制的讨论会做你想做的事情,但目前尚不清楚是否会发生这种情况。

无论如何,目前唯一的方法是

  • 定义每个班级的类型
  • 设置等于每个对象的val

例如,

package bar
case class Foo(i: Int) {}
需要使用

在另一个包中模仿

package object baz {
  type Foo = bar.Foo
  val Foo = bar.Foo
}

当面对这种情况时,人们通常会满足于额外的一两次进口。

答案 1 :(得分:1)

scala中的import语句只是告诉编译器在java中找到其他类的位置,而不是像C / C ++中的#include指令那样,编译器在物理上复制整个头文件。如果要使用com.example.a.b.c中的案例类,则应从自己的包中导入它们,因为这是传统方法。

相关问题