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]=\'?我应该澄清:+并不是在修改现有列表,而是创建一个新列表并返回它。