Java Switch Inkompatible Typen Boolean, Int
Habe ich die folgende Klasse:
public class NewGameContract {
public boolean HomeNewGame = false;
public boolean AwayNewGame = false;
public boolean GameContract(){
if (HomeNewGame && AwayNewGame){
return true;
} else {
return false;
}
}
}
Wenn ich versuche, es so auf:
if (networkConnection){
connect4GameModel.newGameContract.HomeNewGame = true;
boolean status = connect4GameModel.newGameContract.GameContract();
switch (status){
case true:
break;
case false:
break;
}
return;
}
Bin ich immer die Fehlermeldung:
incompatible types found: boolean required: int on the following
`switch (status)` code.
Was mache ich falsch?
- Nur eine Randnotiz, Ihre
GameContract
Methode könnte einfachreturn HomeNewGame && AwayNewGame
. - vielen Dank für die info. im, der versucht zu lernen, C# und Java, und das ist etwas, das Sie verarbeiten anders.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht wechseln auf eine
boolean
(die nur 2 Werte sowieso):The Java Language Specification deutlich bestimmt, welche Art von Ausdruck kann
switch
-ed auf.JLS 14.11 Die switch-Anweisung
Ist es viel besser lesbar und prägnant, einfach zu benutzen, ein
if
- Anweisung zur Unterscheidung der beiden Fälle vonboolean
.wollen Sie nicht
switch
auf einen booleschen Wert, nur mit einem einfachenif
/else
edit :
switch
ist nur fürint
schar
s, oderenum
s (ich denke, das ist alles, vielleicht gibt es andere?)edit edit : es scheint
short
undbyte
sind auch die gültigen Typen für die Umschaltung, als auch die boxed-Versionen all dieser (Integer
,Short
etc etc)Switch-Anweisungen in Java verwenden kann, byte, short, char und int (Hinweis: nicht zu lang) primitive Datentypen oder Ihre entsprechenden wrapper-Typen. Beginnend mit J2SE 5.0, es möglich wurde, verwenden enum-Typen. Ab der Java SE 7 wurde es möglich, Zeichenfolgen verwenden.
Nicht mit booleschen in-Schalter, nur int. Bitte Lesen Sie die Java-docs für die switch-Anweisung.
Schalter nimmt einen ganzzahligen Wert, und ein boolean kann nicht in eine Ganzzahl konvertiert.
In java, ein boolean ist ein Typ der in seinem eigenen Recht, und nicht implizit konvertierbar in andere Typen (außer Boolean).
In Java, switch funktioniert nur mit byte, short, char, int und enum. Für boolsche Variablen, die Sie verwenden sollten, wenn/sonst, da gibt es eine sehr begrenzte Anzahl von Staaten.