局部变量需要声明为final

2023-12-05

我收到错误“局部变量框是从内部类内部访问的;需要声明为最终的”。这看起来不错,但我真的不认为这是最好的解决方案,所以我希望其他人可以帮助我。这是我的代码:

public void showPublisherBox(JComboBox box) {
    if (publisherBox == null) {
        publisherBox = new AddPublisherForm();
        publisherBox.setLocationRelativeTo(this);
    }
    publisherBox.addWindowListener(new WindowAdapter()
    {
    public void windowClosing(WindowEvent we)
    {
        this.populatePublishers(box);
    }

        private void populatePublishers(JComboBox box){
            box.setModel(db.getPublishers());
        }
    });
    publisherBox.setVisible(true);
}

发布者表单只是一个新的 JFrame,它打开并接收一些信息,当它关闭时,我希望通过从 db.getPublishers() 方法设置模型来重新填充 JComboBox。

那么有没有更好的方法来完成我在这里所做的事情,或者我是否必须宣布某些内容为最终版本?

Thanks


既然你不修改box在外部代码中,使用final正是correct解决这个问题的方法。这是对你自己(和编译器)的承诺,box在封闭范围内不会改变。编译器会告诉你如果你违背了这个承诺。

使用时没有编译时间或运行时成本final.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

局部变量需要声明为final 的相关文章

随机推荐