Русские Блоги
Примечание переводчика: в этой статье представлены 20 распространенных ошибок компилятора Java. Каждая ошибка включает фрагменты кода, описания проблем и предоставляет ссылки по теме, которые помогут вам быстро понять и решить эти проблемы. Ниже приводится перевод.
При разработке программного обеспечения Java вы можете столкнуться со многими типами ошибок, но большинства из них можно избежать. Мы тщательно отобрали 20 наиболее распространенных ошибок программного обеспечения Java, включая примеры кода и руководства, которые помогут вам решить некоторые распространенные проблемы с кодированием.
Чтобы получить дополнительные советы и рекомендации по написанию программ на Java, вы можете загрузить наш "Comprehensive Java Developer’s Guide«Эта книга содержит все, что вам нужно, от всевозможных инструментов до лучших веб-сайтов и блогов, каналов YouTube, влиятельных лиц в Twitter, групп в LinkedIn, подкастов, мероприятий, которые необходимо посетить, и многого другого.
Если вы используете .NET, прочтите нашРуководство по 50 наиболее распространенным программным ошибкам .NETЧтобы избежать этих ошибок. Но если ваша текущая проблема связана с Java, прочтите следующую статью, чтобы понять наиболее распространенные проблемы и способы их решения.
Ошибка компилятора
Сообщения об ошибках компилятора создаются, когда компилятор выполняет код Java. Важно, что компилятор может выдавать несколько сообщений об ошибках для одной ошибки. Так что исправьте ошибку и перекомпилируйте, что может решить многие проблемы.
1. “… Expected”
Эта ошибка возникает, когда в коде чего-то не хватает. Обычно это происходит из-за отсутствия точки с запятой или закрывающей скобки.
Обычно это сообщение об ошибке не указывает точное местонахождение проблемы. Чтобы найти проблему, вам необходимо:
- Убедитесь, что все открывающие скобки имеют соответствующие закрывающие скобки.
- Посмотрите на код перед строкой, обозначенной ошибкой. Эта ошибка обычно обнаруживается компилятором в более позднем коде.
- Иногда некоторые символы (например, открывающая скобка) не должны быть первыми в коде Java.
2. “Unclosed String Literal”
Если в конце строки отсутствует кавычка, создается сообщение об ошибке «Незамкнутый строковый литерал», и это сообщение отображается в строке, где произошла ошибка.
Обычно эта ошибка возникает в следующих ситуациях:
- Строка не заканчивается кавычками. Это легко изменить, просто заключите строку в указанные кавычки.
- Строка превышает одну строку. Длинную строку можно разделить на несколько коротких строк и соединить знаком плюс («+»).
- Кавычки, являющиеся частью строки, не экранируются обратной косой чертой ("\").
3. “Illegal Start of an Expression”
Есть много причин для ошибки «Незаконное начало выражения». Это стало одним из наименее полезных сообщений об ошибках. Некоторые разработчики думают, что это вызвано плохим запахом кода.
Обычно выражение создается для генерации нового значения или присвоения значений другим переменным. Компилятор ожидает найти выражение, но посколькуГрамматика не оправдывает ожиданийВыражение не найдено. Эту ошибку можно найти в следующем коде.
4. “Cannot Find Symbol”
Это очень распространенная проблема, потому что все идентификаторы в Java должны быть объявлены до их использования. Эта ошибка возникает из-за того, что компилятор не понимает значения идентификатора при компиляции кода.
Сообщение об ошибке «Не удается найти символ» может иметь множество причин:
- Написание объявления идентификатора может не соответствовать написанию, используемому в коде.
- Переменная никогда не объявлялась.
- Переменная не объявлена в той же области видимости.
- Никакие классы не импортируются.
5. “Public Class XXX Should Be in File”
Если класс XXX и имя файла программы Java не совпадают, будет сгенерировано сообщение об ошибке «Открытый класс XXX должен быть в файле». Только когда имя класса и имя файла Java совпадают, код может быть скомпилирован.
Чтобы решить эту проблему, вы можете:
- Назовите класс и файл с тем же именем.
- Убедитесь, что два имени всегда совпадают.
6. “Incompatible Types”
«Несовместимые типы» — это логические ошибки, которые возникают, когда операторы присваивания пытаются сопоставить типы переменных и выражений. Обычно эта ошибка возникает при присвоении строки целому числу и наоборот. Это не синтаксическая ошибка Java.
Когда компилятор выдает сообщение «несовместимые типы», решить эту проблему действительно непросто:
- Используйте функции преобразования типов.
- Разработчикам может потребоваться изменить исходные функции кода.
7. “Invalid Method Declaration; Return Type Required”
Это сообщение об ошибке означает, что тип возвращаемого значения метода не объявлен явно в объявлении метода.
Есть несколько ситуаций, которые вызывают ошибку "недопустимое объявление метода; требуется тип возвращаемого значения":
- Забыл объявить тип.
- Если метод не имеет возвращаемого значения, вам необходимо указать «void» в качестве возвращаемого типа в объявлении метода.
- Конструктору не нужно объявлять тип. Однако, если в имени конструктора есть ошибка, компилятор будет рассматривать конструктор как метод без указанного типа.
8. “Method in Class Cannot Be Applied to Given Types”
Это сообщение об ошибке более полезно, оно означает, что метод был вызван с неправильными параметрами.
При вызове метода вы должны передать те параметры, которые определены в его объявлении. Пожалуйста, проверьте объявление метода и вызов метода, чтобы убедиться, что они совпадают.
9. “Missing Return Statement”
Когда в методе отсутствует оператор возврата, выдается сообщение об ошибке «Отсутствует оператор возврата». Метод с возвращаемым значением (тип, не являющийся недействительным) должен иметь оператор, который возвращает значение, чтобы значение можно было вызвать вне метода.
Есть несколько причин, по которым компилятор выдает сообщение «отсутствует оператор возврата»:
- Оператор возврата был опущен по ошибке.
- Метод не возвращает никакого значения, но тип не объявлен как недействительный в объявлении метода.
10. “Possible Loss of Precision”
Когда информация, присвоенная переменной, превышает верхний предел, который может нести переменная, выдается ошибка «Возможная потеря точности». Как только это произойдет, часть информации будет отброшена. Если это не проблема, переменную следует явно объявить в коде как новый тип.
Ошибка «возможная потеря точности» обычно возникает в следующих ситуациях:
- Попробуйте присвоить переменной целочисленного типа действительное число.
- Попробуйте присвоить данные типа double переменной целочисленного типа.
Основные типы данных в JavaОбъясняет характеристики различных типов данных.
11. “Reached End of File While Parsing”
Это сообщение об ошибке обычно появляется, когда в программе отсутствует закрывающая фигурная скобка (">"). Иногда эту ошибку можно быстро исправить, добавив закрывающую скобку в конце кода.
Приведенный выше код приведет к следующей ошибке:
Инструменты кодирования и правильные отступы кода могут упростить поиск этих несоответствующих фигурных скобок.
12. “Unreachable Statement”
Когда оператор появляется в месте, где он не может быть выполнен, выдается ошибка «Недоступный оператор». Обычно это делается после оператора break или return.
Обычно эту ошибку можно исправить, просто переместив оператор return. Прочтите эту статью:Как исправить ошибку «Недостижимый отчет»。
13. “Variable Might Not Have Been Initialized”
Если локальная переменная, объявленная в методе, не инициализирована, возникнет такая ошибка. Такая ошибка возникает, если вы включаете переменную без начального значения в оператор if.
14. “Operator … Cannot be Applied to ”
Эта проблема возникает, когда оператор действует с типом, который не входит в область его определения.
Эта ошибка часто возникает, когда код Java пытается использовать строковые типы в вычислениях (вычитание, умножение, сравнение размеров и т. Д.). Чтобы решить эту проблему, вам необходимо преобразовать строку в целое число или число с плавающей запятой.
15. “Inconvertible Types”
Когда код Java пытается выполнить недопустимое преобразование, возникает ошибка «Неконвертируемые типы».
Например, логические типы нельзя преобразовать в целые числа.
16. “Missing Return Value”
Если оператор возврата содержит неверный тип, вы получите сообщение «Отсутствует возвращаемое значение». Например, посмотрите на следующий код:
Возвращается следующая ошибка:
Обычно эта ошибка возникает из-за того, что оператор return ничего не возвращает.
17. “Cannot Return a Value From Method Whose Result Type Is Void”
Эта ошибка Java возникает, когда метод void пытается вернуть какое-либо значение, например, в следующем коде:
Обычно эту проблему может решить изменение типа возвращаемого значения метода, чтобы он соответствовал типу в операторе возврата. Например, следующий void можно изменить на int:
18. “Non-Static Variable … Cannot Be Referenced From a Static Context”
Эта ошибка возникает, когда компилятор пытается получить доступ к нестатической переменной в статическом методе:
Чтобы устранить ошибку «Нестатическая переменная… На нее нельзя ссылаться из статического контекста», можно сделать две вещи:
- Вы можете объявить переменные статическими.
- Вы можете создавать экземпляры нестатических объектов в статических методах.
19. “Non-Static Method … Cannot Be Referenced From a Static Context”
Эта проблема возникает, когда код Java пытается вызвать нестатический метод в статическом классе. Например, такой код:
Вызовет эту ошибку:
Чтобы вызвать нестатический метод в статическом методе, необходимо объявить экземпляр класса вызываемого нестатического метода.
20. “(array) Not Initialized”
Если массив был объявлен, но не инициализирован, вы получите сообщение об ошибке типа «(массив) не инициализирован». Длина массива фиксирована, поэтому каждый массив необходимо инициализировать требуемой длиной.
Следующий код правильный:
это тоже нормально:
Продолжение следует
Сегодня мы обсуждали ошибки компилятора, в следующий раз мы обсудим различные исключения времени выполнения, которые могут возникнуть. Как и структура этой статьи, в следующий раз она будет содержать фрагменты кода, пояснения и ссылки по теме, которые помогут вам исправить код как можно скорее.
Java compile error: "reached end of file while parsing >"
You have to open and close your class with < . >like:
You need to enclose your class in < and >. A few extra pointers: According to the Java coding conventions, you should
- Put your < on the same line as the method declaration:
- Name your classes using CamelCase (with initial capital letter)
- Name your methods using camelCase (with small initial letter)
Here’s how I would write it:
![]()
It happens when you don’t properly close the code block:
![]()
![]()
-
The Overflow Blog
Linked
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.6.8.43486
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.
Reached End of File While Parsing
The Java error message Reached End of File While Parsing results if a closing curly bracket for a block of code (e.g, method, class) is missing.
The fix is easy — just proofread your code.
Example
In the code below, the method called main does not conclude with a closing curly bracket. The compiler cannot parse the code properly and will throw the error.
Avoiding the Error
Because this error is both common and easily avoided, using a code editor like Visual Studio Code or an integrated development environment like Eclipse. Code editors that feature linters and syntax checkers for Java (or whatever language you use) will uncover errors before you attempt to compile.
Fix the Reach End of File While Parsing Error in Java
This tutorial introduces an error reach end of the file while parsing during code compilation in Java.
The reached end of the file while parsing error is a compile-time error. When a curly brace is missing for a code block or an extra curly brace is in the code.
This tutorial will look at different examples of how this error occurs and how to resolve it. The reached end of file while parsing error is the compiler’s way of telling it has reached the end of the file but not finding its end.
In Java, every opening curly place ( < ) needs a closing brace ( >). If we don’t put a curly brace where it is required, our code will not work properly, and we will get an error.
reached end of the file while parsing — Missing Class Curly Brace in Java
We missed adding closing curly braces for the class in the example below.
When we compile this code, it returns an error to the console. The reached end of file while parsing error occurs if the number of curly braces is less than the required amount.