Вы когда-нибудь сталкивались с этой ошеломляющей ошибкой и не знаете, как ее решить? Давайте пройдемся по этой статье и изучим, как мы решаем проблему ошибки «Запрещенное начало выражения 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