2016-08-13 46 views
0

我是scala和學習scala的新手。 我想了解如何在下面的代碼scala是解釋java代碼 沒有在scala中的任何導入語句。 根據我的知識,我們可以在scala中使用java代碼,但我們必須導入java包。在沒有導入語句的情況下在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方法

斯卡拉如何理解它是Java代碼,它使用它無需導入包的語句。

感謝和問候,

回答

3

在Java和Scala - 如果你使用一個類(例如java.io.File,或scala.collection.Seq)的完全限定名字你並不需要進口。 import語句讓編譯器知道你是指無需編寫的包,其中的類:

import java.io.File 

val myFile = new File(".") 

最後 - 在這方面,有一個從Scala代碼調用Java和Scala類之間沒有任何區別 - 二者具有相同的行爲。唯一的區別是Scala的一些基本類(例如Int,Seq ...)默認導入到每個Scala類中。

相關問題