Scala编译器错误:只有类可以有已声明但未定义的成员

Scala编译器错误:只有类可以有已声明但未定义的成员,scala,Scala,下面的类在此行抛出编译器错误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

下面的类在此行抛出编译器错误
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);    
  }

}

导致此错误的原因是什么?

您必须为本地
val
s提供初始值:

val userList=List(新用户(“1”,1))

该错误提醒您:

  • val
    必须指定一个初始值,在您的情况下作为方法体中的局部值

  • 抽象类或trait上的
    val
    可能未初始化-尽管它必须由一个(具体的)子类沿着行的某个地方初始化


首先
userList
是一个
val
,这意味着您需要初始化它。 其次,
userList
属于
List[String]
类型。您不能向其中添加
用户
。应该是这样的:

val userList = List.empty[User]
userList :+ new User("1" , 1); 

为什么我不能使用'val userList:List[User]=\'?我应该澄清:+并不是在修改现有列表,而是创建一个新列表并返回它。