[英]Java Switch Incompatible Types Boolean Int
我有以下課程:
public class NewGameContract {
public boolean HomeNewGame = false;
public boolean AwayNewGame = false;
public boolean GameContract(){
if (HomeNewGame && AwayNewGame){
return true;
} else {
return false;
}
}
}
當我嘗試像這樣使用它時:
if (networkConnection){
connect4GameModel.newGameContract.HomeNewGame = true;
boolean status = connect4GameModel.newGameContract.GameContract();
switch (status){
case true:
break;
case false:
break;
}
return;
}
我收到錯誤消息:
incompatible types found: boolean required: int on the following
`switch (status)` code.
我究竟做錯了什么?
您不想switch
布爾值,只需使用簡單的if
/ else
if (status) {
....
} else {
....
}
edit: switch
只用於int
, char
或enum
(我想就是全部,也許還有其他嗎?)edit edit:似乎short
和byte
也是切換的有效類型,以及盒裝版本的所有這些( Integer
, Short
Integer
等)
您無法打開boolean
(無論如何, boolean
只有2個值):
Java語言規范明確規定了可以switch
哪種類型的表達式。
SwitchStatement: switch ( Expression ) SwitchBlock
Expression
的類型必須為char
,byte
,short
,int
,Character
,Byte
,Short
,Integer
或enum
類型,否則會發生編譯時錯誤。
簡單地使用if
語句來區分boolean
的兩種情況,將更容易理解和簡潔。
Java中的switch語句可以使用byte,short,char和int(注意:不長)原始數據類型或其對應的包裝器類型。 從J2SE 5.0開始,可以使用枚舉類型。 從Java SE 7開始,可以使用字符串。
不能在開關中使用布爾值,只能使用int。 請閱讀Java文檔中的switch語句。
在Java中,switch僅適用於byte,short,char,int和enum。 對於布爾值,應使用if / else,因為狀態數量非常有限。
Switch采用整數值,並且布爾值不能轉換為整數。
在Java中,布爾值本身就是一種類型,並且不能隱式轉換為任何其他類型(布爾值除外)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.