我正在研究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"}
}
有帮助吗?

解决方案

我可能错了,但这不是 WickeBuilder 试图解决的问题:

  

Wicket Builder实用程序实现   用于构建的Groovy构建器   Wicket组件树。

     

使用构建器进行构建   组件树更容易,更清晰   给读者,原来的司机是   Groovy不允许的事实   匿名内部类。便门   依赖于重写方法   为许多人提供自定义功能   组件类型。可以使用Groovy   编写Wicket页面类,但每个   被覆盖的类需要命名   类定义。可能,但是   笨重。

     

WicketBuilder模拟这些   覆盖命名的闭包。   闭包基本上是便携式的   代码块。在引擎盖下,   构建器创建动态类   覆盖并运行闭包时   调用命名方法。

     

[...]

其他提示

嗯..这看起来不像<!>“好<!>”;替代方案,但它似乎是<!>“官方<!>”; Groovy替代方案:

Groovy内部类别的替代方案

我实际上并不经常使用常规,但几个月前问我同样的问题。我尝试了不同的方法

http://rschmid.wordpress。 COM / 2009/05/03 / anonymouse-内类功能于常规/

Groovy 1.7及以上版本支持匿名内部类。请参阅groovy 1.7 发行说明

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top