假设我有一个包含com.example.a.b.c
包含大量案例类的Scala项目。我想将所有这些类导入到包com.example.c
(其中包含一些非冲突的案例类),以便在我的项目中的任何其他地方,我只需要import com.example.c._
来使用每个案例类来自com.example.c
和com.example.a.b.c
。
我该怎么做?
答案 0 :(得分:8)
有关于添加 export 机制的讨论会做你想做的事情,但目前尚不清楚是否会发生这种情况。
无论如何,目前唯一的方法是
例如,
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
中的案例类,则应从自己的包中导入它们,因为这是传统方法。