作者:141qws_330 | 来源:互联网 | 2022-12-07 11:08
从Wicket 7升级到Wicket 8后,我在IntelliJ中遇到了多个擦除警告.
例如,当使用AjaxLink
IntelliJ抱怨时
'org.apache.wicket.MarkupContainer'中的'setDefaultModel(IModel model)'与'org.apache.wicket.IGenericComponent'中的'setDefaultModel(IModel model)'冲突; 两种方法都有相同的擦除但不会覆盖另一种方法
我能做些什么吗?
1> Jeroen Steen..:
如果不提供AjaxLink
泛型类型,则会发生此错误.当你这样做时会发生错误:
new AjaxLink("id")
而不是像:
new AjaxLink("id")
AjaxLink具有以下定义:
public abstract class AjaxLink extends AbstractLink implements IAjaxLink, IGenericComponent>
祖先类是MarkupContainer
,定义:
public MarkupContainer setDefaultModel(final IModel> model)
它实现IGenericComponent
,它具有>
分配类型的泛型类型>
并定义方法:
Component setDefaultModel(IModel> model);
现在,我不完全确定我是否完全理解了这个问题,但由于缺少泛型类型,编译器无法弄清楚MarkupContainer
(返回MarkupContainer
)的实现是否与定义的方法协变IGenericComponent
.