Ан идентификатор очекује грешка је врло честа грешка са којом се суочавају почетници. У овом одељку ћемо разговарати шта је идентификатор очекивана грешка , тхе разлози за појаву грешака, и како поправити очекивану грешку идентификатора у Јави. Пре него што пређемо на грешку, прво ћемо разумети шта су идентификатори у Јави .
Идентификатори у Јави су симболична имена која се користе за идентификацију. Они могу бити а име класе, име променљиве, име методе, име пакета, име константе , итд Међутим, Ин Јава , постоје неке резервисане речи које се не могу користити као идентификатор као што су инт, цонст, нев, доубле, енум, итд.
Шта је очекивана грешка идентификатора?
То је врло честа грешка у компилацији која се јавља у време компајлирања.
Хајде да размотримо следећи Јава програм.
ИдентифиерЕррор.јава
public class IdentifierError { System.out.println('javatpoint'); }
Када покушамо да компајлирамо горњи програм, добијамо следећу грешку.
Код изгледа добро, али није тако. Зато што изјава за штампање није право место. Требало би да буде унутар метода/блока. Хајде да умотамо код у методу, а затим преведемо и покренемо.
ИдентифиерЕррор.јава
public class IdentifierError { public static void main(String args[]) { System.out.println('javatpoint'); } }
Излаз:
javatpoint
Разлози за појаву грешке
Можда постоје следећи разлози за појаву грешке:
- Појављује се када код није у складу са правилима Јава синтаксе.
- Блок кода директно написан у телу класе уместо унутар методе или блока.
- Можда постоје додатне витичасте заграде.
- Шифра није на правом месту.
- Свака изјава мора имати тачку и зарез на крају.
Како поправити/решити грешке?
- Не заборавите да ставите тачку и зарез на крај изјаве.
- Не стављајте код директно у тело класе.
- Позивање метода мора бити унутар методе, конструктора или статичког иницијализатора.
- Напишите блок кода на одговарајућем месту.
- Уклоните додатне витичасте заграде.
ИдентифиерЕррорЕкампле1.јава
public class IdentifierErrorExample1 { public static void main(String args[]) { System.out.println('Python'); } System.out.println('MySql'); System.out.println('Java'); } }
Хајде да компајлирамо горњи код. Добијамо очекивану грешку.
Посматрајте горњи код, добијамо додатну витичасту заграду која је разлог за генерисање грешке. Грешка се може поправити уклањањем додатне заграде на линији 6.
Грешка се такође јавља када ставимо тачку и зарез уместо зареза док дефинишемо вредности енум . На пример, размотрите следећи код.
ИдентифиерЕррорЕкампле2.јава
public class IdentifierErrorExample2 { public enum Vegetables { eggplant, tomato, broccoli; } public static void main(String args[]) { for(Vegetables veg : Vegetables.values()) System.out.println(veg); } }
Покренимо горњи код. добијамо идентификатор очекивану грешку.
Да бисте исправили грешку, уклоните тачке и зарезе из вредности енума.
public enum Vegetables { eggplant, tomato, broccoli; }
Понекад грешка може бити много већа. Размотрите следећи код.
ИдентифиерЕррорЕкампле3.јава
import java.util.Arrays; public class IdentifierErrorExample3 { int[] primes = {17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73}; int max_val; max_val = nums[0]; for (int i = 1; i max_val) { max_val = primes[i]; } } System.out.println('Primes Numbers are: ' + Arrays.toString(primes)); System.out.println('Largest Prime is: ' + max_val); }
Хајде да компајлирамо горњи код.
Добијамо превише грешака јер неке изјаве директно пишу унутар тела класе. Да бисте решили грешку, напишите цео блок кода унутар методе, а затим преведите и покрените.
ИдентифиерЕррорЕкампле4.јава
import java.util.Arrays; public class IdentifierErrorExample4 { public static void main(String args[]) { int[] primes = {17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73}; int max_val; max_val = primes[0]; for (int i = 1; i max_val) { max_val = primes[i]; } } System.out.println('Primes Numbers are: ' + Arrays.toString(primes)); System.out.println('Largest Prime is: ' + max_val); } }
Излаз: