新的声明方式,用def定义新属性

本文探讨了Groovy语言中属性定义的变化,包括早期使用@Property注解定义带getter和setter的方法,以及后续版本中如何采用def关键字替代@Property实现相同功能。随着语言的发展,@Property已被废弃,而def成为了推荐的选择。

def 和 @Property

旧版本中(Groovy JSR 06 的之前版本)@Property定义一个带有setter和getter的私有属性,而def和java中public一样,定义一个公共的属性。

后来@Property已经从Groovy JSR 06中移除,在Grails 0.2和之后的版本中也不会再需要它 。

现在def用来定义一个带有setter和getter的私有属性,来代替了@Property。



参考:http://docs.codehaus.org/display/GroovyJSR/Property+proposal

symbol  meaning
 private
 protected
 public
 final


code field   getter   setter
def x   
final x   
public x   
protected x   
private x   
public final x   
@Property x    
other permutations?    

Proposed

code field   getter   setter note
def x      
final x    the field doesn't need to be final IMHO (dk) My view is that the field should be final(tug)
public x    
protected x    
private x    
public final x
 a public final field like in Java
@Property x      if it's still supported (MrG) My proposal is to remove it (tug)
other permutations?     what happens with static? (MrG) Static behave exactly the same(tug)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值