不能改变if语句里面的变量值???? java的

时间:2017-12-17 15:57:44

标签: java variables if-statement

我正在尝试为系统托盘中的通知设置请勿打扰功能,我正在尝试制作if语句,如果变量dnd = false然后将系统托盘名称更改为“请勿打扰 - on“并将dnd设置为true,然后设置为dnd = false,但在dnd = true;dnd = false;下面有一条红线,并说”在封闭范围内定义的局部变量dnd必须为最后或有效的最后“我不知道该怎么做。请帮忙。
这是我的代码:

boolean dnd = false;
doNotDisturb.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {  
        if (dnd == false) {
            dnd = true;
            doNotDisturb.setName("Do Not Disturb - on");
        } else {
            dnd = false;
        }
    }
});

1 个答案:

答案 0 :(得分:0)

变量pi@blueberry ~ $ systemd --version systemd 215 +PAM +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ -SECCOMP -APPARMOR pi@blueberry ~ $ sudo systemctl daemon-reload pi@blueberry ~ $ sudo systemctl start /etc/systemd/system/rfxtrx.service Failed to start etc-systemd-system-rfxtrx.service.mount: Unit etc-systemd-system-rfxtrx.service.mount failed to load: No such file or directory. pi@blueberry ~ $ 必须是最终的或有效的最终(这是这种情况)。这就是您能够从闭包上下文中引用它的原因。 编译器并不希望您从闭包或匿名类中重新分配dnd

您可以通过

解决问题
  1. 在对象中包装dnd:

    dnd

    并在匿名课程中:

    DndConfig dndConfig = new DndConfig();

  2. 使dndConfig.dnd = true; //your logic成为主类的实例字段。