当您不提供AjaxLink泛型类型时会发生此错误。例如:
new AjaxLink("id")
而不是类似的东西:
new AjaxLink<Void>("id")
AjaxLink 有如下定义:
public abstract class AjaxLink<T> extends AbstractLink implements IAjaxLink, IGenericComponent<T, AjaxLink<T>>
祖先类是MarkupContainer,它定义了:
public MarkupContainer setDefaultModel(final IModel<?> model)
它实现IGenericComponent了具有泛型类型,这些类型<T, C extends IGenericComponent<? super T, ?>>分配了类型<T,AjaxLink<T>>并定义了方法:
Component setDefaultModel(IModel<?> model);
现在,我不完全确定我是否完全理解了这个问题,但不知何故,由于缺乏泛型类型,编译器无法确定MarkupContainer(返回MarkupContainer)的实现与IGenericComponent.