2017-03-08 87 views
-2

所以我的代碼工作正常,但是唯一真正困擾我的是我的IDE拋出了一個建議,「真正賦予'alarmState'的值永遠不會被使用」,我可以'從我的代碼中擺脫報警狀態,因爲它會引發更多錯誤。有誰知道爲什麼會發生這種情況,如果是這樣的話,請在我的變量下重做我的代碼,使其效率不會受到灰色下劃線的影響。在對象中切換布爾

  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

顯然它沒有alarmState大膽,但只是把它放在** –

回答

3

x ^= yx = x^y簡寫。既然你不需要分配的結果,你就可以說

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

可以進一步簡化爲

clockObject.setAlarmSet(!alarmState); 
+0

我同意這是一個問題。但它不應該是他的問題的原因「alarmState從未使用」? –

+0

我不這麼認爲。當不使用變量時,這是一個非常具體的消息。它不用於識別有問題的代碼。 –

+0

糟糕,我刪除了@EduardoDennis所指的評論。 (我在技術上寫了賦值*的結果,因爲它被傳遞給'setAlarmSet'方法,但是IDE仍然識別有問題的代碼。) – dnault