我正在尝试为系统托盘中的通知设置请勿打扰功能,我正在尝试制作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;
}
}
});
答案 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
。
您可以通过
解决问题在对象中包装dnd:
dnd
并在匿名课程中:
DndConfig dndConfig = new DndConfig();
使dndConfig.dnd = true; //your logic
成为主类的实例字段。