2016-08-13 9 views
0

私はscalaとlearning scalaを初めて使用しています。 以下のコードでscalaがJavaコード を解釈する方法を理解したいと思います。 私の知る限りでは、スカラでjavaコードを使用できますが、javaパッケージをインポートする必要があります。import文なしでscalaのjava関数を使用する

このコードで
scala> object Filematcher{ 
| private def fileshere = (new java.io.File(".")).listFiles 
| def fileEnding(query: String)= 
| for (file <- fileshere; 
| if file.getName.endsWith(query)) 
| yield file 
| } 
defined object Filematcher 

new java.io.File(".")).listFilesfile.getName.endsWith(query)は、JavaメソッドScalaはそれがJavaコードであり、それは輸入package文なしでそれを使用している理解してどのように

です。

おかげで、よろしく、JavaとScalaの両方で

答えて

3

- あなたはクラスの完全修飾名(例えばjava.io.File、またはscala.collection.Seq)を使用する場合は、インポートする必要はありません。 import文は、コンパイラは、あなたがそのパッケージを記述することなく、に言及されているクラスを知ってみましょう:最後に

import java.io.File 

val myFile = new File(".") 

- その点では、ScalaのコードからJavaとScalaのクラスを呼び出すことに違いはありません - 両方同じように動作します。唯一の違いは、Scalaの基本クラス(IntSeq ...など)がデフォルトですべてのScalaクラスにインポートされることです。

関連する問題