Behebung des Fehlers Bad Operand Types in Java
-
Fehlerhafte Operandentypen für den
&
-Operator in Java -
Fehlerhafte Operandentypen für den
&&
-Operator in Java -
Fehlerhafte Operandentypen für den Operator
==
in Java -
Fehlerhafte Operandentypen für den Operator
<=
in Java
Dieses Tutorial stellt den Fehler bad operand types
für binäre Operatoren in Java vor.
Ein binärer Operator ist ein Operator, der zwei Operanden erfordert. Operatoren wie arithmetische Operatoren und Vergleichsoperatoren werden binäre Operatoren genannt.
Operatoren spielen eine wichtige Rolle bei der Programmierung, und manchmal kann ein binärer Operator aufgrund unsachgemäßer Verwendung den Fehler bad operand types
ausgeben. Der Fehler bad operand types
ist ein Kompilierungsfehler, wenn beide Arten von Operanden inkompatibel sind.
Zum Beispiel erhalten wir diesen Fehler, wenn wir eine Zeichenfolge mit einer Ganzzahl vergleichen. Dieser Artikel befasst sich mit verschiedenen Beispielen, wie dieser Fehler auftritt und wie er behoben werden kann.
Manchmal kann die Rangfolge der Operatoren auch zu inkompatiblen Operatortypen führen und zu einem Fehler an der Konsole führen.
Fehlerhafte Operandentypen für den &
-Operator in Java
Lassen Sie uns zunächst den häufigsten Fall verstehen, in dem ein bad operator error
im Java-Code auftreten kann. Sehen Sie sich unten einen Beispielcode an:
public class MyClass {
public static void main(String args[]) {
int x = 43;
if (x & 21 == 1) {
System.out.println("if block executing");
} else {
System.out.println("else block executing");
}
}
}
Ausgabe:
MyClass.java:4: error: bad operand types for binary operator '&'
if( x & 21 == 1){
^
first type: int
second type: boolean
1 error
Dieser Fehler tritt auf, weil die Priorität des Operators ==
(gleich) höher ist als die des Operators &
. Dies führt zur Auswertung 21 == 1
, was uns einen booleschen Wert liefert.
Beachten Sie nun, dass das &
einen ganzzahligen Operanden und einen booleschen Wert hat. Da beide Operatoren unterschiedlichen Typs sind, kann der Operator &
nicht funktionieren, sodass wir eine Fehlermeldung erhalten.
Wir werden Klammern verwenden, um anzuzeigen, dass x & 21
zuerst ausgewertet werden muss, um diesen Fehler zu beheben. Sehen Sie sich den modifizierten Code unten an:
public class MyClass {
public static void main(String args[]) {
int x = 43;
if ((x & 21) == 1) {
System.out.println("if block executing");
} else {
System.out.println("else block executing");
}
}
}
Ausgabe:
if block executing
Fehlerhafte Operandentypen für den &&
-Operator in Java
Wenn Sie mit dem logischen Operator &&
(und) arbeiten, können Sie in einigen Fällen mit dem Fehler bad operand types
konfrontiert werden, wie im folgenden Beispielcode:
public class MyClass {
public static void main(String args[]) {
int x = 43;
if ((x > 10) && (x * 5)) {
System.out.println("if block executing");
} else {
System.out.println("else block executing");
}
}
}
Ausgabe:
MyClass.java:4: error: bad operand types for binary operator '&&'
if((x > 10) && (x*5)){
^
first type: boolean
second type: int
1 error
Dieser Fehler tritt auf, weil der Operand &&
zwei boolesche Operanden erwartet.
Hier ergibt der Ausdruck x * 5
einen ganzzahligen Wert. Daher hat der Operator &&
hier einen ganzzahligen Operanden und gibt uns den Fehler bad operand types
.
Um diesen Fehler zu beheben, ändern wir diesen Code so, dass x * 5==21
einen booleschen Wert zurückgibt. Sehen Sie sich den modifizierten Code unten an:
public class MyClass {
public static void main(String args[]) {
int x = 43;
if ((x > 10) && (x * 5 == 21)) {
System.out.println("if block executing");
} else {
System.out.println("else block executing");
}
}
}
Ausgabe:
else block executing
Fehlerhafte Operandentypen für den Operator ==
in Java
Sie erhalten möglicherweise denselben Fehler, wenn Sie mit dem Gleichheitsoperator ==
arbeiten. Es kann zu einem schlechten Operatorfehler kommen, wenn beide übergebenen Operanden von unterschiedlichem Typ sind.
Sehen Sie sich das folgende Beispiel an:
public class MyClass {
public static void main(String args[]) {
int x = 43;
String y = "43";
if (x == y) {
System.out.println("if block executing");
} else {
System.out.println("else block executing");
}
}
}
Ausgabe:
MyClass.java:5: error: bad operand types for binary operator '=='
if(x == y){
^
first type: int
second type: String
1 error
Dieser Fehler tritt auf, weil die Operanden des Gleichheitsoperators ==
unterschiedlichen Typs sind. Das eine ist ein String und das andere eine ganze Zahl.
Um diesen Fehler zu beheben, müssen wir einen von ihnen konvertieren, um dieselben Datentypen zu erhalten. Wenn wir Integer in Strings umwandeln, erfolgt der Vergleich in lexikologischer Reihenfolge.
Also konvertieren wir string in int. Sehen Sie sich den modifizierten Code unten an:
public class MyClass {
public static void main(String args[]) {
int x = 43;
String y = "43";
if (x == Integer.parseInt(y)) {
System.out.println("if block executing");
} else {
System.out.println("else block executing");
}
}
}
Ausgabe:
if block executing
Fehlerhafte Operandentypen für den Operator <=
in Java
Wie im vorherigen Fallbeispiel kann auch der Operator <=
(kleiner als gleich) einen Fehler Bad Operand Types
liefern, wenn beide Operanden von unterschiedlichen Typen sind. Sehen Sie sich das folgende Beispiel an:
public class MyClass {
public static void main(String args[]) {
int x = 43;
String y = "43";
if (x <= y) {
System.out.println("if block executing");
} else {
System.out.println("else block executing");
}
}
}
Ausgabe:
MyClass.java:5: error: bad operand types for binary operator '<='
if(x <= y){
^
first type: int
second type: String
1 error
Um diesen Fehler zu beheben, müssen wir einen von ihnen konvertieren, um dieselben Datentypen zu erhalten. Sehen Sie sich den modifizierten Code unten an:
public class MyClass {
public static void main(String args[]) {
int x = 43;
String y = "43";
if (x <= Integer.parseInt(y)) {
System.out.println("if block executing");
} else {
System.out.println("else block executing");
}
}
}
Ausgabe:
if block executing
Verwandter Artikel - Java Error
- Adresse wird bereits verwendet JVM_Bind-Fehler in Java
- Android Java.Lang.IllegalStateException behoben: Methode der Aktivität konnte nicht ausgeführt werden
- Ausnahme im Hauptthread Java.Lang.ClassNotFoundException in IntelliJ IDEA
- Ausnahme im Hauptthread Java.Lang.NoClassDefFoundError
- Beheben Sie das Problem, dass Java nicht installiert werden kann. Es gibt Fehler in den folgenden Schaltern
- Beheben Sie den Fehler `Es wurde keine Java Virtual Machine gefunden` in Eclipse