下面的类会在此行val userList : List[User]
处抛出编译器错误:
Multiple markers at this line
- only classes can have declared but undefined members
- only classes can have declared but undefined members
以下是整个代码:
class SimilarityData {
case class User(id: String, jCoeff : Int)
def getUsers() =
{
val userList : List[User]
userList :+ new User("1" , 1);
}
}
导致此错误的原因是什么?
答案 0 :(得分:4)
您必须为本地val
提供初始值:
val userList = List(新用户(“1”,1))
错误提醒您:
val
必须已分配初始值,在您的情况下,作为方法正文中的本地值。
抽象类或特征上的val
可能会被取消初始化 - 尽管它必须由沿线某处的(具体)子类初始化,
答案 1 :(得分:2)
首先userList
是val
,这意味着您需要对其进行初始化。
其次userList
的类型为List[String]
。您无法向其添加User
。这应该是这样的:
val userList = List.empty[User]
userList :+ new User("1" , 1);