通过传递List [Record]调用方法时Scala编译时错误

时间:2016-09-29 11:29:23

标签: scala

我在scala中做了一些基本的动手。我在定义一个名为processList的方法时遇到了编译时错误。

编译时错误是

 Multiple markers at this line:
- only classes can have declared but undefined 
 members

我的代码如下,

package pack1

import scala.io.Source

case class Record(id:Int, name:String, city:String)

object ReadingFile {

  def main(args: Array[String]): Unit = {
    val fileLoc:String = "/home/edureka/surender/inputfiles/records.txt"

    val fileData:List[String] = Source.fromFile(fileLoc).getLines().toList

    val fileList =fileData.map { eachLine => {
      val Array(a:String,b:String,c:String) = eachLine.split(",")
      Record(a.toInt,b,c)
    } } 

    println(fileList)

    processList(fileList)

  } 

  def processList(myList:List[Record]) 

  {

  }

}

我不知道如何解决这个问题,有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

由于def processList(myList:List[Record])之后的新行,Scala编译器认为没有给出方法实现,并且块{}下面不属于该方法。所以编译器认为它是一个抽象方法。

像这样声明processList

 def processList(myList:List[Record]) {

 }

 def processList(myList:List[Record]): Unit = {

 }

而不是这个

def processList(myList:List[Record])
                                     //remove this line to fix the error
   {

   }

答案 1 :(得分:-1)

此代码存在问题,

@photo = Photo.find(params[:id])

这导致编译器认为这是两个不同的语句。因此,它认为您已离开def processList(myList:List[Record]) // <------ Notice this blank line { } 而未提供实施。 def processList(myList:List[Record])classcase class无法使用未实现的成员。

所以...只是解决这个问题,

object