Анонимный внутренний класс в Groovy - PullRequest
3 голосов
/ 18 сентября 2009

Я смотрю на интеграцию 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"}
}

Ответы [ 5 ]

1 голос
/ 01 сентября 2010

Пример завершения для Groovy 1.7.x и wicket 1.4.x http://wash -inside-out.blogspot.com / 2010/08 / wicket-and-groovy -gration.html

1 голос
/ 18 сентября 2009

Возможно, я ошибаюсь, но не это WickeBuilder пытается решить:

Утилита Wicket Builder реализует Groovy Builder для построения Деревья компонентов калитки.

При использовании строитель делает здание Компоненты деревьев проще и понятнее для читателя, оригинальный драйвер был тот факт, что Groovy не позволяет анонимные внутренние классы. калитка опирается на переопределяющие методы обеспечить пользовательский функционал для многих Типы компонентов. Groovy можно использовать кодировать классы страницы калитки, но каждый класс, который переопределен, нуждается в именованном определение класса. Возможно, но неуклюжий.

WicketBuilder имитирует эти переопределяет с именованными замыканиями. Крышки, по сути, портативные кодовые блоки. Под капотом строитель создает динамический класс переопределяет и запускает замыкания, когда названный метод называется.

[...]

1 голос
/ 18 сентября 2009

Э-э-э ... Это не похоже на "хорошую" альтернативу, но, похоже, это "официальная" альтернатива Groovy:

Отличная альтернатива внутренним классам

0 голосов
/ 05 октября 2009

Groovy 1.7 и выше поддерживает анонимные внутренние классы. См. Groovy 1.7 примечания к выпуску .

0 голосов
/ 18 сентября 2009

На самом деле я не часто использую groovy, но задал мне тот же вопрос несколько месяцев назад. я опробовал разные подходы

http://rschmid.wordpress.com/2009/05/03/anonymouse-inner-classes-in-groovy/

...