Поля, которые вы объявляете в записях лифта, являются объектами поля, а не фактическими значениями, содержащимися в поле.Чтобы получить доступ к фактическому значению, вам нужно вызвать:
this.likePostList.get
или если поле является необязательным
this.likePostList.valueBox
, которое возвращает scala.Option
подобный объект.
Если вы думаете об этом, это имеет большой смысл, потому что вы на самом деле объявляете likePostList
экземпляром MongoListField
при вводе:
object likePostList extends MongoListField[User, ObjectId](this)
вместо
val likePostList: List[ObjectId] = ...
Нет волшебства, которое Scala может сделать, чтобы автоматически преобразовать это в List[ObjectId]
.Это так же, как:
class Foo {
val bar = 3
object baz { val greeting = "hello" }
}
val foo = new Foo
println(foo.bar) // prints 3
println(foo.baz) // prints something like Foo$baz$@1d981b6a
println(foo.baz.greeting) // prints "hello"
PS в более старых версиях Lift, get
назывался is
.