パッケージの下にたくさんのケースクラスがあるScalaプロジェクトがあるとしましょうcom.example.a.b.c
。これらすべてのクラスをパッケージ(競合しないケースクラスがさらにいくつか含まれている)にインポートして、プロジェクトの他の場所で、fromと。の両方のすべてのケースクラスを使用するcom.example.c
だけでよいようにします。import com.example.c._
com.example.c
com.example.a.b.c
どうやってやるの?
あなたが望むことをするエクスポートメカニズムを追加することについての議論がありますが、それが起こるかどうかは明らかではありません。
いずれにせよ、今のところ唯一の方法は
たとえば、
package bar
case class Foo(i: Int) {}
別のパッケージで模倣する必要があります
package object baz {
type Foo = bar.Foo
val Foo = bar.Foo
}
これに直面したとき、人々は通常、1つか2つの追加の輸入品で解決します。
scalaのimportステートメントは、コンパイラがヘッダーファイル全体を物理的にコピーするC / C ++の#includeディレクティブとは異なり、javaのように他のクラスを見つける場所をコンパイラに指示するだけです。からのケースクラスを使用する場合com.example.a.b.c
は、これが従来の方法であるため、独自のパッケージからインポートする必要があります。