加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

当指定类型时,javac“使用未经检查或不安全的操作”

发布时间:2020-12-15 08:49:30 所属栏目:Java 来源:网络整理
导读:以下代码: public void addGrillaListener(Stage stageToClose,Grilla listener){ GrillaHandlerWindowEvent handy = new GrillaHandler(listener); if(stageToClose!=null) { stageToClose.addEventHandler(WindowEvent.WINDOW_HIDDEN,handy); }} 导致编译
以下代码:

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

导致编译器显示该消息.我怎么能避免呢?

额外信息:

> Grilla是舞台界面
> GrillaHandler是一个EventHandler子类,它将Grilla作为构造函数参数
>使用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();
}

解决方法

将代码更改为

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

JavaFX EventHandler是一种paremeterized类型.您在GrillaHandler的声明中缺少那个.您被迫在类声明中提供类型参数或重新声明类型参数,因为您似乎需要根据您的声明.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读