mrkernelpanic :
개찰구 7 개찰구 8로 업그레이드 후, 나는 인 IntelliJ에서 여러 삭제 경고를 encounterd.
예를 사용하는 경우 AjaxLink
IntelliJ에 불평
'org.apache.wicket.IGenericComponent'에서 'setDefaultModel (IModel 해당 모델)'와 'org.apache.wicket.MarkupContainer'충돌에서 'setDefaultModel (IModel 해당 모델)'; 두 방법 모두 같은 삭제가 아직 어느 쪽도 다른 사람을 무시하지
나는 그것에 대해 할 수있는 일이 있나요?
제론 Steenbeeke :
이 오류는 제공하지 않을 때 발생 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
.