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

Java 为什么BookmarkablePageLink类在Wicket中是通用的?,java,generics,wicket,Java,Generics,Wicket,有人知道为什么wicket中的BookmarkablePageLink类是泛型的吗?我一直在创建新的BookmarkablePageLink(…)只是为了避免编译器警告 我应该选择不同的泛型类型吗?代码的简要视图让我更加困惑,为什么它是泛型的。从代码的简要概述来看,泛型的原因似乎可以在抽象超类中看到。具体而言,链接允许您通过与泛型类型的模型对象关联。因此,从他们的示例中,当您覆盖: 新链接(“myLink”){ 公共void onClick() { MyObject obj=getModelOb

有人知道为什么wicket中的
BookmarkablePageLink
类是泛型的吗?我一直在创建新的
BookmarkablePageLink(…)
只是为了避免编译器警告


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

从代码的简要概述来看,泛型的原因似乎可以在抽象超类中看到。具体而言,链接允许您通过与泛型类型的模型对象关联。因此,从他们的示例中,当您覆盖:

新链接(“myLink”){
公共void onClick()
{
MyObject obj=getModelObject();
setResponsePage(新MyPage(obj));
}
}

可以访问相关的模型对象

从抽象超类的简要概述来看,泛型的原因似乎可以在抽象超类中看到。具体而言,链接允许您通过与泛型类型的模型对象关联。因此,从他们的示例中,当您覆盖:

新链接(“myLink”){
公共void onClick()
{
MyObject obj=getModelObject();
setResponsePage(新MyPage(obj));
}
}

可以访问相关的模型对象

引入Wicket 1.4后,开发人员决定将
组件
类进行泛化。由于
BookmarkablePageLink
组件
的后代(与Wicket中的几乎所有内容一样),它也变得通用


建议使用
Void
作为
BookmarkablePageLink
s的泛型类型,以及泛型类型没有真正意义的其他Wicket组件。

Wicket 1.4引入后,开发人员决定泛型
组件
类。由于
BookmarkablePageLink
组件
的后代(与Wicket中的几乎所有内容一样),它也变得通用


建议使用
Void
作为
BookmarkablePageLink
s的泛型类型,以及泛型类型没有真正意义的其他Wicket组件。

我使用
,只是为了避免警告。非常酷,我将切换到Void。我没有意识到Java有这样一个对象。谢谢你的提示!我使用
,只是为了避免警告。很酷,我会切换到Void。我没有意识到Java有这样一个对象。谢谢你的提示!好的,我不明白为什么要将模型对象与链接相关联。现在还不是很清楚。在您的示例中,没有设置链接的模型。如果您这样做了,您可以直接在onClick中使用该对象(如果它是final的话)。@schmmd在匿名类中,是的。但是如果你编写一个自定义链接类,那么模型就在构造函数中,不能被方法引用。好吧,我不明白你为什么要将模型对象与链接关联起来。现在还不是很清楚。在您的示例中,没有设置链接的模型。如果您这样做了,您可以直接在onClick中使用该对象(如果它是final的话)。@schmmd在匿名类中,是的。但是,如果编写自定义链接类,则该模型位于构造函数中,不能被方法引用。
new Link<MyObject>("myLink") {
     public void onClick()
     {
         MyObject obj = getModelObject();
         setResponsePage(new MyPage(obj));
     }
}