[Groovy] 关于groovy mixin(混入)的语法
zengsun
2008-01-03
请看下面一段代码:
import org.codehaus.groovy.runtime.TimeCategory use(TimeCategory) { println new Date() + 1.hour + 3.weeks - 2.days def now = new Date() def zero = now - now.hours.hours - now.minutes.minutes - now.seconds.seconds println zero } 通过使用TimeCategory的静态方法为Integer混入了如hours、minutes等方法。 现在我想为Date类型混入zero方法,以实现获得 now - now.hours.hours - now.minutes.minutes - now.seconds.seconds 获得某天零时刻的功能。 class DateExt { static zero(Date date) { use(TimeCategory) { date - date.hours.hours - date.minutes.minutes - date.seconds.seconds } } } 但是上面的语法是错误的!请指点,谢谢! |
|
zengsun
2008-01-03
zengsun 写道 请看下面一段代码:
import org.codehaus.groovy.runtime.TimeCategory use(TimeCategory) { println new Date() + 1.hour + 3.weeks - 2.days def now = new Date() def zero = now - now.hours.hours - now.minutes.minutes - now.seconds.seconds println zero } 通过使用TimeCategory的静态方法为Integer混入了如hours、minutes等方法。 现在我想为Date类型混入zero方法,以实现获得 now - now.hours.hours - now.minutes.minutes - now.seconds.seconds 获得某天零时刻的功能。 class DateExt { static zero(Date date) { use(TimeCategory) { date - date.hours.hours - date.minutes.minutes - date.seconds.seconds } } } 但是上面的语法是错误的!请指点,谢谢! 自己反复试了一下,得正解: class DateExt { static getZero(Date date) { use(TimeCategory) { date - date.hours.hours - date.minutes.minutes - date.seconds.seconds } } } use(DateExt) { def now = new Date() println now.zero } |
|
agile_boy
2008-01-04
呵呵, 不错,简洁的语法
|
|
shiren1118
2008-01-04
zengsun 写道 请看下面一段代码:
import org.codehaus.groovy.runtime.TimeCategory use(TimeCategory) { println new Date() + 1.hour + 3.weeks - 2.days def now = new Date() def zero = now - now.hours.hours - now.minutes.minutes - now.seconds.seconds println zero } 通过使用TimeCategory的静态方法为Integer混入了如hours、minutes等方法。 现在我想为Date类型混入zero方法,以实现获得 now - now.hours.hours - now.minutes.minutes - now.seconds.seconds 获得某天零时刻的功能。 class DateExt { static zero(Date date) { use(TimeCategory) { date - date.hours.hours - date.minutes.minutes - date.seconds.seconds } } } 但是上面的语法是错误的!请指点,谢谢! 记得山风写过一个,呵呵,去他那看看啊 |
|
geszJava
2008-01-07
学习ing
|