要在包中使用聲明,我們必須導入它們,就像在Java中一樣。
Scala提供了其他選項,如下面導入Java類型的示例所示:
包是一個命名的代碼模塊。
Java和Scala慣例規(guī)定程序包名稱是代碼所有者的反向域名。
源文件中的第一個非注釋行:
package com.java2s.stuff
可以導入Scala包,以便可以在當前編譯范圍中引用它們。
以下語句導入scala.xml軟件包的內(nèi)容:
import scala.xml._
以下語句導入scala.xml軟件包的內(nèi)容:
import transform._
我們可以從scala.collection.mutable包中導入單個類和對象,例如HashMap:
import scala.collection.mutable.HashMap
我們可以從單個包中導入多個類或?qū)ο?,例如,從scala.collection.immutable包中導入TreeMap和TreeSet:
import scala.collection.immutable.{TreeMap, TreeSet}
import java.awt._ import java.io.File import java.io.File._ import java.util.{Map, HashMap}
我們可以在包中使用下劃線 _
作為通配符導入所有類型。
我們還可以導入單個Scala或Java類型,如第二行所示。
Java使用“星號"字符 *
作為導入的通配符。
在Scala中,此字符被允許作為方法名稱,因此使用 _
來避免歧義。
第三行導入java.io.File中的所有靜態(tài)方法和字段。
等效的Java導入語句將是import static java.io.File。*;
最后,我們可以導入一個類或?qū)ο蟛⒅孛?。例如,您可以從scala.util.parsing.json包中導入JSON類/對象,并將其重命名為JsonParser:
import scala.util.parsing.json.{JSON=> JsonParser}
import可以在任何代碼塊內(nèi)部使用,導入將僅在該代碼塊的范圍內(nèi)有效。
例如,我們可以在類體中導入一些東西,如下面的代碼所示:
class Frog { import scala.xml._ // }
例如,我們可以在類體中導入一些東西,如下面的代碼所示:
這很像Java的靜態(tài)導入。
組合局部范圍導入和導入對象允許我們微調(diào)導入對象及其關(guān)聯(lián)方法的位置。
Scala沒有導入靜態(tài)構(gòu)造,因為它像其他類型一樣對待對象類型。
我們可以將import語句幾乎放在任何地方,以將它們的可見性限制在需要它們的地方。
我們可以在導入時重命名類型,我們可以禁止不需要的類型的可見性:
def stuffWithBigInteger() = { import java.math.BigInteger.{ ONE => _, TEN, ZERO => JAVAZERO } println( "TEN: "+TEN ) println( "ZERO: "+JAVAZERO ) }
Scala導入是相對的。
請注意以下導入的注釋:
import scala.collection.mutable._ import collection.immutable._ // Since "scala" is already imported import _root_.scala.collection.parallel._ // full path from real "root"
更多建議: