Вы когда-нибудь сталкивались с этой ошеломляющей ошибкой и не знаете, как ее решить? Давайте пройдемся по этой статье и изучим, как мы решаем проблему ошибки «Запрещенное начало выражения Java».
Это динамическая ошибка, которая означает, что компилятор находит что-то, что не соответствует правилам или синтаксису Java-программирования . Новички в основном сталкиваются с этой ошибкой в Java. Поскольку он динамический, он запрашивается во время компиляции, т. Е. С оператором javac.
Эта ошибка может встречаться в различных сценариях. Ниже приведены наиболее распространенные ошибки. Им объясняют, как их можно исправить.
1. Префикс локальных переменных с помощью модификаторов доступа
Переменные внутри метода или блока являются локальными переменными. Локальные переменные имеют область действия в своем конкретном блоке или методе; то есть к ним нельзя получить доступ нигде внутри класса, кроме метода, в котором они объявлены. Модификаторы доступа : public, private и protected запрещены для использования внутри метода с локальными переменными, поскольку его область действия метода определяет их доступность.
Это можно объяснить с помощью примера:
|
1
2
3
4
5
6
|
Class LocalVar {public static void main(String args[]){int variable_local = 10}} |

2. Метод внутри другого метода
Метод не может иметь другого метода в своей области видимости . Использование метода внутри другого метода приведет к ошибке «Недопустимое начало выражения». Ошибка будет возникать независимо от использования модификатора доступа с именем функции.
Ниже приведена демонстрация кода:
|
1
2
3
4
5
6
7
|
Class Method{public static void main (String args[]){public void calculate() { } }} |

|
1
2
3
4
5
6
7
|
Class Method{public static void main (String args[]){void calculate() { } }} |

3. Класс внутри метода не должен иметь модификатор
Точно так же метод может содержать класс внутри своего тела; это допустимо и, следовательно, не даст ошибку во время компиляции. Однако классы make note не начинаются с модификаторов доступа, поскольку модификаторы не могут присутствовать внутри метода.
В приведенном ниже примере класс Car определен внутри основного метода; этот метод находится внутри класса Vehicle. Использование открытого модификатора с классом Car может привести к ошибке во время выполнения, так как модификаторы не должны присутствовать внутри метода.
|
1
2
3
4
5
6
7
|
class Vehicle{public static final void main(String args[]){public class Car { }}} |

4. Отсутствие фигурных скобок «{}»
Пропуск фигурных скобок любого блока метода может привести к ошибке «Недопустимое начало выражения». Ошибка произойдет, потому что это будет противоречить синтаксису или правилам программирования Java, так как каждый блок или определение класса должны начинаться и заканчиваться фигурными скобками. Разработчику также может потребоваться определить другой класс или метод в зависимости от требований программы. Определение другого класса или метода, в свою очередь, также будет иметь модификаторы, что недопустимо для тела метода.
В следующем коде рассмотрим класс Addition, метод main добавляет два числа и сохраняет в переменной sum. Позже результат печатается с использованием метода displaySum. Ошибка будет отображаться на терминале, поскольку фигурная скобка отсутствует в конце метода main.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
|
public class Addition{static int sum;public static void main(String args[]){int x = 8;int y= 2;sum=0;sum= x + y;{System.out.println("Sum = " + sum);}} |

5. Строковый символ без двойных кавычек «»
Инициализация строковых переменных без двойных кавычек является распространенной ошибкой, допущенной многими новичками в Java, поскольку они, как правило, забывают двойные кавычки и впоследствии озадачиваются, когда ошибка появляется во время выполнения. Переменные, имеющие тип данных String, должны быть заключены в двойные кавычки, чтобы избежать ошибки «незаконного начала выражения» в их коде.
Переменная String представляет собой последовательность символов. Символы могут быть не просто алфавитами, они также могут быть числами или специальными символами, такими как @, $, &, *, _, -, +,?, / И т. Д. Поэтому заключайте строковые переменные в двойные кавычки, чтобы избежать получения ошибка.
Рассмотрим пример кода ниже; пропущенные кавычки вокруг значений оператора переменной генерируют ошибку во время выполнения.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import java.util.*;public class Operator{public static void main(String args[]){int a = 10;int b = 8;int result =0; Scanner scan = new Scanner(System.in);System.out.println("Enter the operation to be performed");String operator= scan.nextLine();if(operator == +){ result = a+b;} else if(operator == -){ result = a-b; } else{System.out.prinln("Invalid Operator");} System.out.prinln("Result = " + result); } |

6. Резюме
Подводя итог, можно сказать, что ошибка «Недопустимое начало выражения» возникает, когда компилятор Java находит что-то неподходящее с исходным кодом во время выполнения. Чтобы устранить эту ошибку, попробуйте просмотреть строки, предшествующие сообщению об ошибке, на предмет отсутствия скобок, фигурных скобок или точек с запятой и проверьте синтаксис.
Полезный совет: помните, что в некоторых случаях одна синтаксическая ошибка иногда может привести к множественным ошибкам «незаконного начала выражения». Поэтому оцените основную причину ошибки и всегда перекомпилируйте при исправлении ошибки, что означает избегать внесения нескольких изменений без компиляции на каждом шаге.
7. Загрузите исходный код
Вы можете скачать полный исходный код этой статьи здесь: Как исправить неверное начало выражения в Java