6

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

我怎样才能做到这一点?

4

2 回答 2

8

有关于添加一个可以做你想做的事情的导出机制的讨论,但尚不清楚这是否会发生。

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

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

例如,

package bar
case class Foo(i: Int) {}

需要在另一个包中模仿

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

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

于 2012-12-11T23:25:41.040 回答
1

scala 中的 import 语句只是告诉编译器在哪里可以找到其他类(如 java 中的类),而不像 C/C++ 中的 #include 指令,其中编译器会物理复制整个头文件。如果您想使用来自 的案例类com.example.a.b.c,您应该从它们自己的包中导入它们,因为这是常规方式。

于 2012-12-11T22:51:41.443 回答