回覆列表
  • 1 # Tiekt鐵鐵

    可以把object看成是特殊的class,可以認為他是class的單例。object不是變數因此不能再賦值,但他裡面的欄位可以賦值。lift的所有欄位都用object表示,更突出lift裡所有東西都是有實際業務意義的物件。比如object dateOf extends MappedDateTime(this) 如果在java中定義model可能就定義為: private Date dateOf; 那麼他就是一個日期型欄位,和bussiness model沒太大關係。在Lift中,預設給這些欄位型別定義了很多與業務相關的方法,比如asHtml,toForm,validate等,你也可以override這些預設方法。這裡的object可以當作是java的內類,訪問Scala的內類和訪問方法一樣用點。object可以當作是例項化好的,因此不需要例項化,直接用就行了。例如Scala程式碼 Expense expense = Expense.create expense.dateOf(current) 這裡是呼叫了Expense的內類dateOf,再呼叫了dateOf的apply方法,等同於Scala程式碼 Expense expense = Expense.create expense.dateOf.apply(current)

  • 中秋節和大豐收的關聯?
  • 油條涼了變硬怎麼解決?