私はシステムトレイの通知のための機能を妨害しないようにしようとしていますが、変数dnd = false
が "Do Not Disturb - on"に変更されて設定されているif文を作成しようとしています。 dnd
がtrueに設定されている場合、dnd = false
と設定されていますが、dnd = true;
とdnd = false;
の下に赤い線が表示され、「囲みスコープで定義されたローカル変数dndは最終的にまたは効果的に最終的でなければなりません」と表示されます。助けてください。
ここに私のコード:if文内の変数値を変更できないJava
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;
}
}
});
解決策は本当にしたいかによって異なります。 *匿名クラスの外で宣言されたローカル変数に*新しい値を再割当てすることはできません。だから、その変数を匿名クラスに移動したり、上位クラスのフィールドにしたり、ブール値を他の型でラップしたり、ゲッターやセッターによってその状態を変更したりすることができます。 – Pshemo
エラーメッセージで検索しましたか?これを*前にお願いします。 –