2017-03-08 1 views
-2

So funktioniert mein Code gut und alles, aber das einzige, was mich wirklich nervt, ist, dass meine IDE eine Empfehlung mit der Aussage "der Wert True zugewiesen zu 'AlarmState' wird nie verwendet", kann ich ' Ich werde den Alarmstatus von meinem Code entfernen, da er mehr Fehler verursacht. Weiß jemand, warum das passiert, und wenn ja, wiederholen Sie meinen Code so effizient wie ohne die bedrohliche graue Unterstreichung unter meiner Variable.toggle bool in einem Objekt

  case 3 : 
       System.out.print("The alarm state is now : "); 
       boolean alarmState = clockObject.isAlarmSet(); 
       clockObject.setAlarmSet(alarmState ^= true); //This value 
       System.out.print(clockObject.isAlarmSet()); 
       break; 
+0

anscheinend hat es nicht fett machen Alarmstate aber nur in setzen ** –

Antwort

3

x ^= y ist eine Abkürzung für x = x^y. Da Sie das Ergebnis der Zuordnung nicht benötigen, können Sie einfach sagen

clockObject.setAlarmSet(alarmState^true); // use^instead of ^= 

, die weiter vereinfacht werden kann

clockObject.setAlarmSet(!alarmState); 
+0

Ich stimme zu, dass das ein Problem ist. Aber es sollte nicht die Ursache für sein Problem sein "alarmState wird nie benutzt"? –

+0

Ich glaube nicht. Das ist eine sehr spezifische Nachricht, wenn eine Variable nicht verwendet wird. Es wird nicht verwendet, um fraglichen Code zu identifizieren. –

+0

Hoppla, Ich habe den Kommentar gelöscht, auf den sich EduardoDennis bezieht. (Ich habe geschrieben, dass technisch das Ergebnis der Zuweisung * verwendet wird *, weil es an die 'setAlarmSet'-Methode übergeben wurde, aber die IDE trotzdem fraglichen Code identifizierte.) – dnault