Alv*_*aro 4 java types casting interface
以下代码:
public void addGrillaListener(Stage stageToClose,Grilla listener)
{
GrillaHandler<WindowEvent> handy = new GrillaHandler<>(listener);
if(stageToClose!=null)
{
stageToClose.addEventHandler(WindowEvent.WINDOW_HIDDEN,handy);
}
}
Run Code Online (Sandbox Code Playgroud)
导致编译器显示该消息.我怎么能避免呢?
额外信息:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
格里拉:
public interface Grilla {
public void loadTable();
}
Run Code Online (Sandbox Code Playgroud)
将代码更改为
public class GrillaHandler<T extends Event> implements EventHandler<T>{
//...
}
Run Code Online (Sandbox Code Playgroud)
JavaFX EventHandler是一种paremeterized类型.你在宣言中遗漏了那一个GrillaHandler.您被迫在类声明中提供类型参数或重新声明类型参数,因为您似乎需要根据您的声明.