我是scala的新手,無法理解Lift人如何實現Record API。但是,這個問題不是關於這個API,而是關於Scala的一般問題。我對Lift中使用的類模式中的對象的工作方式感興趣。類框架中的對象如何在Lift Framework中使用?
class MainDoc private() extends MongoRecord[MainDoc] with ObjectIdPk[MainDoc] {
def meta = MainDoc
object name extends StringField(this, 12)
object cnt extends IntField(this)
}
object MainDoc extends MainDoc with MongoMetaRecord[MainDoc]
在上面的代碼片段中,您可以看到記錄是如何在Lift中定義的。有趣的部分是這些字段被定義爲對象。該API允許你創建實例是這樣的:
val md1 = MainDoc.createRecord
.name("md1")
.cnt(5)
.save
這可能是由於使用的應用方法做了什麼?但同時你可以通過做這樣的事情來獲得價值:
val name = md1.name
這是如何工作的?在課堂範圍內的對象是不是靜態的。或者他們只是一些內部表示的構造函數類?如何迭代所有字段,你使用反射?
感謝, 奧托