为什么BookmarkablePageLink类在Wicket中是通用的?

时间:2011-02-21 19:55:00

标签: java generics wicket

有谁知道为什么BookmarkablePageLink类在wicket中是通用的?我一直在创建新的BookmarkablePageLink<Object>(...)以避免编译器警告。

我应该选择不同的通用类型吗?简要的代码视图让我更加困惑,为什么它是通用的。

2 个答案:

答案 0 :(得分:5)

当推出Wicket 1.4时,开发人员决定对Component类进行生成。由于BookmarkablePageLinkComponent的后代(就像Wicket中的几乎所有东西一样),它也变得通用了。

Wicket 1.4 migration guide建议使用Void作为BookmarkablePageLink的通用类型,以及泛型类型实际上没有意义的其他Wicket组件。

答案 1 :(得分:4)

javadoc的简要概述看,在抽象超类Link中可以看到泛型的原因。具体来说,链接允许您通过setModelObject将泛型类型的模型对象与其关联。因此,从他们的示例中,当您覆盖onClick

new Link<MyObject>("myLink") {
     public void onClick()
     {
         MyObject obj = getModelObject();
         setResponsePage(new MyPage(obj));
     }
}

您可以访问相关的模型对象。