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
。