groovy中的java匿名内部类
我正在研究groovy wicket集成,在编写事件处理程序时,缺少匿名内部类似乎是一个问题。 有没有更常规的方法来编写这段代码
import org.apache.wicket.PageParameters
import org.apache.wicket.markup.html.basic.Label
import org.apache.wicket.markup.html.link.Link
import org.apache.wicket.markup.html.WebPage
/**
* Homepage
*/
class HomePage extends WebPage {
public HomePage(final PageParameters parameters) {
// Add the simplest type of label
add(new Label("message", "Wicket running!"));
def link1 = new ClickHandler("link1") //in java, defined inline
add(link1);
}
}
class ClickHandler extends Link{
ClickHandler(String id) {
super(id);
}
void onClick(){println "Hi"}
}
# 1 楼答案
呃。。这看起来不是一个“好”的替代方案,但似乎是一个“正式的”Groovy替代方案:
Groovy Alternatives to Inner Classes
# 2 楼答案
实际上,我并不经常使用groovy,但几个月前我问过同样的问题。我尝试了不同的方法
http://rschmid.wordpress.com/2009/05/03/anonymouse-inner-classes-in-groovy/
# 3 楼答案
Groovy 1.7及更高版本支持匿名内部类。参见groovy 1.7release notes
# 4 楼答案
我可能错了,但这不正是WickeBuilder试图解决的问题吗:
# 5 楼答案
groovy 1.7的完整示例。x和wicket 1.4。xhttp://wash-inside-out.blogspot.com/2010/08/wicket-and-groovy-integration.html