Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何解决;来自内部类的局部变量引用必须是final,即“final”;?_Java - Fatal编程技术网

Java 如何解决;来自内部类的局部变量引用必须是final,即“final”;?

Java 如何解决;来自内部类的局部变量引用必须是final,即“final”;?,java,Java,我有这个代码,我想在actionPerformedlistener in按钮中为我的enum变量设置一个值,但它说: 来自内部类的局部变量引用必须是final或final 代码: 如何解决它?您可以将变量从一个方法移动到另一个类: (但是,如评论中所述,您的按钮将不起作用) userChoice是addAction的本地选项,在调用addAction后,您永远不会使用它。重点是什么? public class myClass { public enum UserChoice {

我有这个代码,我想在
actionPerformed
listener in按钮中为我的
enum
变量设置一个值,但它说:

来自内部类的局部变量引用必须是final或final

代码:


如何解决它?

您可以将变量从一个方法移动到另一个类: (但是,如评论中所述,您的按钮将不起作用)


userChoice
addAction
的本地选项,在调用
addAction
后,您永远不会使用它。重点是什么?
public class myClass {
    public enum UserChoice {
        Yes, No
    }

    public void addAction() {
        JButton btnYes = new JButton();
        UserChoice userChoice;
        btnYes.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent e) {
                userChoice = 1;
                dlg.dispose();
            }
        });
    }
}
public class myClass{
    public enum UserChoice{
        Yes, No
    }

    UserChoice userChoice;

    public void addAction(){
        JButton btnYes = new JButton();

        btnYes.addActionListener(new java.awt.event.ActionListener(){
            public void actionPerformed(java.awt.event.ActionEvent e){
                userChoice = UserChoice.Yes;
                dlg.dispose();
            }
        });
    }
}