当前位置: 代码迷 >> 综合 >> Groovy with
  详细解决方案

Groovy with

热度:47   发布时间:2024-01-12 05:03:01.0

首先看一段Java代码:

// PrintIndependenceDay.javaimport java.util.Calendar;
import java.util.Date;public class PrintIndependenceDay {public static void main(String[] args) {Calendar calendar = Calendar.getInstance();calendar.clear();calendar.set(Calendar.MONTH, Calendar.JULY);calendar.set(Calendar.DATE, 4);calendar.set(Calendar.YEAR, 1776);Date time = calendar.getTime();System.out.println(time);}
}

这段代码中我们获得Calendar的实例,然后反复的调用它的方法。是否觉得冗余,因为我们的上下文环境是已知的,在Groovy中我们利用“with”来简化,上面的代码等价的Groovy代码如下:

// PrintIndependenceDay.groovydef calendar = Calendar.instance
calendar.with {clear()set MONTH, JULYset DATE, 4set YEAR, 1776println time
}

是不是很简洁,我们还有更炫的功能,这要得益于delegate机制,看下面的例子:

// define a closure
def myClosure = {// call a method th