案例类的scala返回案例不匹配

时间:2014-05-24 00:35:16

标签: function scala return case-class mismatch

我想要返回一个名为Entry的case类,所以我无法更改函数的签名。当我填写我的case类并尝试返回它时,我收到以下错误:

<console>:13: error: type mismatch;
 found   : Entry(in method apply)
 required: <empty>.Entry

我不确定该函数为什么要求该类型

def apply(line: String) : Entry = {
   case class Entry(account:String, password:String, UID:Int, GID:Int,
                    GECOS:String, directory:String, shell:String)
   val fields = line.split(":")
   val x = Entry(fields(0), fields(1), fields(2).toInt, fields(3).toInt,
         fields(4), fields(5), fields(6))
    x
}

1 个答案:

答案 0 :(得分:2)

这是一个猜测,但我相信Entry在其他地方定义。我这样说是因为你在函数签名中引用了“Entry”类,但你也在函数体中定义了一个case类。您要返回的Entry不是函数所期望的Entry