Bezeichner Erwarteter Fehler in Java
-
Verständnis des Fehlers
<Bezeichner> erwartet
in Java - Beispiel 1: Wenn Parameter in einer Methode Datentyp oder Name fehlen
- Beispiel 2: Wenn die Ausdrucksanweisungen falsch platziert sind
- Beispiel 3: Wenn Deklarationsanweisungen falsch platziert sind
- Abschluss
In diesem Artikel erfahren wir etwas über den Java-Fehler <identifier> erwartet
.
Verständnis des Fehlers <Bezeichner> erwartet
in Java
<identifier> erwartet
ist der häufigste Java-Kompilierungsfehler, mit dem unerfahrene Programmierer konfrontiert werden. Dieser Fehler tritt auf, wenn für einen Methodenparameter kein Datentyp oder Name deklariert ist oder wenn eine Ausdrucksanweisung außerhalb einer Methode, eines Konstruktors oder eines Initialisierungsblocks geschrieben wird.
In Java ist ein Bezeichner eine Folge von einem oder mehreren Zeichen, wobei das erste Zeichen ein Buchstabe oder $
oder _
sein muss und die nachfolgenden Zeichen Buchstaben, Ziffern, $
oder _
sein können.
Diese Bezeichner werden verwendet, um eine Variable, eine Methode, eine Klasse, ein Paket, eine Schnittstelle usw. zu benennen.
Wenn der Java-Code kompiliert wird, beinhaltet die Anfangsphase eine lexikalische Analyse des Programms. Hier wird das Programm in Token kategorisiert, und alle Token, einschließlich Identifikatoren, werden anhand einer Reihe von Grammatikregeln überprüft.
Und immer wenn gemäß den Grammatikregeln ein Bezeichner erwartet wird, aber nicht vorhanden ist und etwas anderes an seiner Stelle gefunden wird, löst der Compiler den Fehler <Bezeichner> erwartet
aus. Spitze Klammern bedeuten hier einen Verweis auf die Token-Objekte.
Schauen wir uns einige Beispiele an, um es jetzt besser zu verstehen.
Beispiel 1: Wenn Parameter in einer Methode Datentyp oder Name fehlen
Parameter innerhalb einer Methode müssen Daten enthalten, gefolgt vom Variablennamen, der ein Bezeichner ist; Fehlt einer von beiden, wird unweigerlich der Fehler <Kennung> erwartet
ausgelöst.
-
Daten des Parameters fehlen
public class Demo { public static int square(x) { return x * x; } public static void main(String[] args) { System.out.println(square(10)); } }
Ausgang:
square.java:9: error: <identifier> expected public static int square(x) { ^ 1 error
Wenn wir den obigen Fehler beobachten, sehen wir, dass der Variablen
x
der Datentyp fehlt. Wenn wir den Datentyp dafür angeben, wird es richtig funktionieren.public class Demo { public static int square(int x) { return x * x; } public static void main(String[] args) { System.out.println(square(10)); } }
Ausgang:
100
-
Der Datentyp des Parameters ist der Bezeichner; hier fehlt der Variablenname.
public class Demo { public static int square(int) { return x * x; } public static void main(String[] args) { System.out.println(square(10)); } }
Ausgang:
square.java:9: error: <identifier> expected public static int square(int) { ^ 1 error
Wenn wir den obigen Fehler beobachten, können wir deutlich sehen, dass wir den Datentyp angegeben, aber keinen Variablennamen angehängt haben.
public class Demo { public static int square(int x) { return x * x; } public static void main(String[] args) { System.out.println(square(10)); } }
Ausgang:
100
Beispiel 2: Wenn die Ausdrucksanweisungen falsch platziert sind
Der Compiler löst einen Fehler aus, wenn eine Ausdrucksanweisung außerhalb einer Methode, eines Konstruktors oder eines Initialisierungsblocks geschrieben wird <Bezeichner> erwartet
.
Beispielcode:
public class Demo {
private String name;
name = "Naruto";
System.out.println(name);
}
Ausgang:
Demo.java:9: error: <identifier> expected
name = "Naruto";
^
Demo.java:10: error: <identifier> expected
System.out.println(name);
^
Demo.java:10: error: <identifier> expected
System.out.println(name);
^
3 errors
Wenn wir den obigen Fehler beobachten, tritt der Fehler auf, weil die Anweisungen nicht in einer Funktion oder einem Konstruktor eingeschlossen sind. Lassen Sie uns diese Anweisungen in eine Methode namens print
schreiben.
public class Demo {
private String name;
public void print() {
name = "Naruto";
System.out.println(name);
}
public static void main(String[] args) {
Demo obj = new Demo();
obj.print();
}
}
Ausgang:
Naruto
Beispiel 3: Wenn Deklarationsanweisungen falsch platziert sind
Dies ist selten, aber nicht ungewöhnlich, wenn mit try-with-resources
-Anweisungen gearbeitet wird. Alle diese Anweisungen erfordern, dass alle schließbaren Ressourcen unmittelbar nach dem Schlüsselwort try
deklariert werden.
Wenn die Ressourcenvariable außerhalb der try-with-resources
-Anweisung deklariert wird, kann der Compiler den <identifier> erwartet
-Fehler auslösen (als Compiler zu Compiler kann dies variieren).
Beispielcode: Hier ist die schließbare Ressource BufferedReader
.
import java.io.*;
public class Demo {
public static void main(String[] args) {
StringBuilder obj = new StringBuilder();
BufferedReader br = null;
try (br = new BufferedReader(new InputStreamReader(System.in))) {
String lines = "";
while (!(lines = br.readLine()).isBlank()) {
obj.append(lines);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Ausgang:
Demo.java:13: error: <identifier> expected
try (br = new BufferedReader(new InputStreamReader(System.in))) {
^
1 error
Der Fehler wird behoben, wenn wir das BufferedReader obj
innerhalb des try
-Blocks deklarieren.
import java.io.*;
public class Demo {
public static void main(String[] args) {
StringBuilder obj = new StringBuilder();
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
String lines = "";
while (!(lines = br.readLine()).isBlank()) {
obj.append(lines);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Abschluss
In diesem Artikel haben wir erfahren, warum der Compiler den Fehler <identifier> erwartet
ausgelöst hat und warum dies der häufigste Kompilierungsfehler ist, mit dem Neulinge konfrontiert werden. Wir haben uns auch verschiedene Beispiele angesehen, in denen die Fälle analysiert wurden, in denen dieser Fehler aufgetreten ist.
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