4

次のコード:

public void addGrillaListener(Stage stageToClose,Grilla listener)
{
    GrillaHandler<WindowEvent> handy = new GrillaHandler<>(listener);
    if(stageToClose!=null)
    {
        stageToClose.addEventHandler(WindowEvent.WINDOW_HIDDEN,handy);
    }
}

コンパイラにそのメッセージを表示させます。どうすればそれを回避できますか?

追加情報:

  • Grillaはステージインターフェースです
  • GrillaHandlerは、Grillaをコンストラクターパラメーターとして受け取るEventHandlerサブクラスです。
  • JDK 7を使用すると、GrillaHandler<>が許可されます
  • コンパイラメッセージはかなり不特定です-このメソッドがチェックされていない、または安全でない操作を使用していることを示しています
  • Stageは、oracleによって提供されるクラスであり、javafxの一部です。

GrillaHandler:

public class GrillaHandler<T> implements EventHandler {

    private Grilla win;

    public GrillaHandler(Grilla win) {
        this.win=win;
    }

    @Override
    public void handle(Event t) {
        win.loadTable();
    }
}

グリラ:

public interface Grilla { 
    public void loadTable();
}
4

1 に答える 1

8

コードをに変更します

public class GrillaHandler<T extends Event> implements EventHandler<T>{ 
//...
}

JavaFX EventHandlerは、パラメーター化されたタイプです。の宣言にその1つがありませんGrillaHandler。宣言に従って必要と思われるように、クラス宣言で型引数を指定するか、型パラメーターを再宣言する必要があります。

于 2013-01-10T04:11:54.150 に答える