0

私は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

私の質問は:

通常のようにインポートする代わりに、そのインターフェイスのフル パスを使用する必要があるのはなぜですか?

この件に関するリソースは役に立ちます。

4

0 に答える 0