class里定义object有何特殊含义

 我来答
huanglenzhi
2015-04-17 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517193
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
可以把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)
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式