私は2つのインターフェースを持っています
package com.oneviewservices.oneview.client.widget;
import com.oneviewservices.oneview.client.presenter.IPresenter;
public interface IDisplay<D> {
void setPresenter(IPresenter<D> presenter);
IPresenter<D> getPresenter();
}
と
package com.oneviewservices.oneview.client.widget.dialogs;
import com.oneviewservices.oneview.client.widget.IDisplay;
public interface IDialogDisplay extends IDisplay<IDialogDisplay> {}
最後に、内部インターフェイスを持つクラスがあります
package com.oneviewservices.oneview.client.presenter.clusterlist;
import com.oneviewservices.oneview.client.presenter.dialogs.DialogPresenter;
import com.oneviewservices.oneview.client.widget.dialogs.IDialogDisplay;
public ClusterInPresenter extends DialogPresenter<ClusterInPresenter.ClusterInDisplay> {
interface ClusterInDisplay extends IDialogDisplay {}
public ClusterInPresenter(ClusterInDisplay display) {
super(display)
}
}
このままにしておくと、jenkins のコンパイラは for で失敗します"Cannot Find Symbol"
(IDialogDisplay
内部インターフェイス宣言の行で)。IDisplay の完全なパスを次のように使用すると、次のようになります。
package com.oneviewservices.oneview.client.presenter.clusterlist;
import com.oneviewservices.oneview.client.presenter.dialogs.DialogPresenter;
public ClusterInPresenter extends DialogPresenter<ClusterInPresenter.ClusterInDisplay> {
interface ClusterInDisplay extends com.oneviewservices.oneview.client.widget.dialogs.IDialogDisplay {}
public ClusterInPresenter(ClusterInDisplay display) {
super(display)
}
}
ジェンキンスでコンパイルされます
編集: ジェンキンスログからの完全なエラー
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /home/gfroud/.jenkins/jobs/1View4/workspace/src/main/java/com/oneviewservices/oneview/client/presenter/clusterlist/ClusterListInFileSelectPresenter.java:[25,43] cannot find symbol
symbol : class IDialogDisplay
location: class com.oneviewservices.oneview.client.presenter.clusterlist.ClusterListInFileSelectPresenter
[ERROR] /home/gfroud/.jenkins/jobs/1View4/workspace/src/main/java/com/oneviewservices/oneview/client/widget/clusterlist/dialogs/ClusterListInFileSelectDialog.java:[195,1] method does not override or implement a method from a supertype
[ERROR] /home/gfroud/.jenkins/jobs/1View4/workspace/src/main/java/com/oneviewservices/oneview/client/widget/clusterlist/dialogs/ClusterListInFileSelectDialog.java:[203,1] method does not override or implement a method from a supertype
[ERROR] /home/gfroud/.jenkins/jobs/1View4/workspace/src/main/java/com/oneviewservices/oneview/client/widget/clusterlist/dialogs/ClusterListInFileSelectDialog.java:[209,1] method does not override or implement a method from a supertype
[ERROR] /home/gfroud/.jenkins/jobs/1View4/workspace/src/main/java/com/oneviewservices/oneview/client/presenter/clusterlist/ClusterListInFileSelectPresenter.java:[23,102] type parameter com.oneviewservices.oneview.client.presenter.clusterlist.ClusterListInFileSelectPresenter.ClusterInDisplay is not within its bound
私の質問は:
通常のようにインポートする代わりに、そのインターフェイスのフル パスを使用する必要があるのはなぜですか?
この件に関するリソースは役に立ちます。