Scala导入类在同一文件夹中

时间:2016-03-30 14:31:27

标签: java scala

我是Scala的初学者,来自Java背景。 我在两个文件中有两个单例对象定义,如下所示。

LongLines.scala

import scala.io.Source

object LongLines {

  def processFile(filename: String, width: Int) {
    val source = Source.fromFile(filename)
    for (line <- source.getLines)
      processLine(filename, width, line)
  }

  private def processLine(filename: String,
      width: Int, line: String) {

    if (line.length > width)
      println(filename +": "+ line.trim)
  }
}

FindLongLines.scala

object FindLongLines {
def main(args: Array[String]) {
  val width = args(0).toInt
  for (arg <- args.drop(1))
    LongLines.processFile(arg, width)
}

}

我首先使用以下命令编译LongLines.scala

[root@vm test_longlines]# scalac LongLines.scala 
[root@vm test_longlines]# ls
FindLongLines.scala  LongLines.class  LongLines$.class  LongLines.scala

现在,当我尝试使用以下命令运行时,我无法找到&#39; LongLines&#39;。

[root@vijayvm test_longlines]# scala -cp . FindLongLines.scala 10 LongLines.scala 
/home/scala/dev/test_longlines/FindLongLines.scala:5: error: not found: value LongLines
    LongLines.processFile(arg, width)
    ^

找到一个错误

我应该在FindLongLines.scala中导入LongLines吗?两者都在同一个文件夹中,但我使用过包。

2 个答案:

答案 0 :(得分:2)

将导入行添加到顶部

import package_name._

import package_name.longlines

答案 1 :(得分:1)

1,你还没有编译FindLongLines.scala吗?

第二,在Scala中,您可能在一个文件中有多个对象/类。对于命令行应用来说,将两个文件中的小对象分开可能有点过分