2016-08-13 41 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类中。

相关问题