リンクをクリックでシリアライズ化した Consumer ラムダを実行

Wicket の 簡単な記述で実現してみたくなりました。
Wicket 8 を使います。

org.apache.wicket.markup.html.link.Link を継承したクラスで作ります。
どんな名称にしたら良いか悩みましたが、センス無いとは思いましたが、
もういっそのこと、そのまんま、 Click ... Link ... bind というキーワードで以下を作成

package org.yipuran.wicketcustom;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.util.lang.Args;
import org.danekja.java.util.function.serializable.SerializableConsumer;

/**
 * リンク click → シリアライズ化した Consumer の実行.
 */
public abstract class ClickLink<T> extends Link<T>{

   /**
    * private コンストラクタ.
    * @param コンポーネントID
    */
   private ClickLink(String id){
      super(id);
   }
   /**
    * コンポーネントID→シリアライズ Consumer 設定コンポーネント生成.
    * @param id component ID
    * @param onClick SerializableConsumer<String> parameter is component ID
    * @return ClickLink
    */
   public static <T> ClickLink<T> bind(String id, SerializableConsumer<String> onClick){
      Args.notNull(onClick, "onClick");
      return new ClickLink<T>(id){
         private static final long serialVersionUID = 1L;
         @Override
         public void onClick(){
            onClick.accept(id);
         }
      };
   }
}

使い方のサンプル、、、

<a wicket:id="back" href="#">HomePage にもどる</a>

に対して、、

    queue(ClickLink.bind("back", t->setResponsePage(HomePage.class)));