java - Compilation warning: Unchecked call to XXX as member of the raw type -
i getting compiler warning:
warning: [unchecked] unchecked call setview(v) member of raw type abstractpresenter
this.presenter.setview(this);where v type-variable:
v extends abstractview declared in class abstractpresenter
the code of abstractpresenter class following:
public abstract class abstractpresenter<v extends abstractview, m> implements presenter<v, m> { private m model; private v view; @override public final v getview() { return this.view; } public final void setview(v view) { if (view == null) { throw new nullpointerexception("view cannot null."); } if (this.view != null) { throw new illegalstateexception("view has been set."); } this.view = view; } @override public final m getmodel() { return this.model; } protected final void setmodel(m model) { if (model == null) { throw new nullpointerexception("model cannot null."); } this.model = model; } } the setview method called in abstractview class below:
public abstract class abstractview<p extends abstractpresenter> extends usercontrol { private final p presenter; public abstractview(p presenter) { this.presenter = presenter; this.initialisepresenter(); } private void initialisepresenter() { if (this.presenter == null){ throw new illegalstateexception(); } this.presenter.setview(this); //this call raises warning } protected p getpresenter() { return this.presenter; } } i have searched questions other members regarding same warning , tried adapt solutions issue did not work.
i don't understand why warning raised v type forced in declaration of abstractpresenter class:
public abstract class abstractpresenter<v extends abstractview, m> implements presenter<v, m> it warning , ignore understand why happens , want code clean possible.
your types raw - is, generic types bonded type has type, haven't provided one, it's raw.
change type bounds typed. try this:
public abstract class abstractpresenter<v extends abstractview<v>, m> implements presenter<v, m> and
public abstract class abstractview<p extends abstractpresenter<p> extends usercontrol
Comments
Post a Comment