読者です 読者をやめる 読者になる 読者になる

インポート宣言


Scala では JavaAPI がシームレスに使えます。このとき、Java と同じようにインポート宣言を行います。Scala でのインポート宣言は Java のインポート宣言より少し強力です。

import java.text.DateFormat       // Javaと同様のインポート宣言
import java.text.DateFormat._     // Javaでいう*インポート(Scalaでは*が識別子)
import java.util.{Date, Locale}   // 同じパッケージの複数クラスをインポート

別名インポート

以下のようにインポートすることで、別名を付けてインポートできます。

import java.util.{Date => DateTime}

除外インポート

以下の例は、MapとSetを除く、mutableパッケージのインポートになります。

import scala.collection.mutable.{_, Map => _, Set => _}

相対インポート

Scalaのインポートは相対的に行われるので、以下の例では、scala.collection と scala.collection.mutable の全てのクラスがインポートされます。

import scala.collection._
import mutable._

また上記は、scala 以下は暗黙的にインポートされるので、「import collection._」と書くこともできます。

ルートからのインポート

ルートパッケージからのインポートを明示するには以下の様にします。

import _root_.scala.collection.mutable.Map

暗黙的インポート

Scala では以下のインポート節が暗黙的に追加されている。

import java.lang_
import scala._
import Predef._

ここで注意点は、上記で後からインポートされたものが、先にインポートされたものを隠していることである。例えば、java.lang.StringBuilder は、 scala.StringBuilder によって隠されることになる。