如何在Java中修复表达式的非法开头

您是否遇到过这个令人难以置信的错误,想知道如何解决它? 让我们浏览一下这篇文章,研究如何解决表达式Java非法开头错误。

这是一个动态错误,这意味着编译器会发现某些不符合Java编程规则或语法的内容。 初学者大多会遇到Java中的此错误。 由于它是动态的,因此在编译时即用javac语句提示。

在各种情况下都可能会遇到此错误。 以下是最常见的错误。 解释了如何修复它们。

1.使用访问修饰符为本地变量添加前缀

方法或块内的变量是局部变量。 局部变量在其特定的块或方法内具有范围; 也就是说,除了声明它们的方法之外,不能在类内部的任何地方访问它们。 访问修饰符 :在方法内部使用带有局部变量的访问修饰符 public,private和protected是非法的,因为其方法范围定义了它们的可访问性。

可以借助示例进行解释:

Class LocalVar {
public static void main(String args[])
{
int variable_local = 10
}
}
Java中表达式的非法开始-Access修饰符
将修饰符与局部变量一起使用会产生错误

2.另一方法内部的方法

一个方法在其范围内不能有另一个方法 。 在另一个方法中使用一个方法会引发“表达式的非法起始”错误。 无论使用带有功能名称的访问修饰符,都会发生该错误。

下面是代码的演示:

Class Method
{
public static void main (String args[])
{
public void calculate() { } 
}
}
Java中表达式的非法开始-内部方法的定义
内部定义一个方法而另一个方法是非法的
Class Method
{
public static void main (String args[])
{
void calculate() { } 
}
}
Java中非法的表达式开始
该错误不仅仅取决于修饰符的出现

3.方法内的类必须没有修饰符

同样,方法可以在其主体内部包含一个类。 这是合法的,因此在编译时不会出错。 但是,使注释类不是以访问修饰符开头的,因为修饰符不能存在于方法内部。

在下面的示例中,Car类在main方法内部定义; 此方法在Vehicle类中。 在类Car上使用public修饰符会在运行时出现错误,因为修饰符一定不能出现在方法中。

class Vehicle
{
public static final void main(String args[])
{
public   class Car { }
}
}
Java中表达式的非法开始-用修饰符声明一个类
不允许在方法内部声明带有修饰符的类

4.缺少大括号“ {}”

跳过任何方法块的花括号都可能导致出现“表达式的非法开始”错误。 由于每个语法或Java编程规则都会出错,因为每个块或类定义必须以大括号开头和结尾,因此将发生错误。 开发人员可能还需要根据程序要求定义另一个类或方法。 反过来,定义另一个类或方法也将具有修饰符,这对于方法主体是非法的。

在下面的代码中,考虑类Addition,方法main将两个数字相加并存储在变量sum中。 然后,使用displaySum方法打印结果。 由于方法main末尾缺少花括号,因此会在终端上显示错误。

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);
}
}
Java中非法的表达式开始-缺少大括号
块定义中缺少大括号会导致错误。

5.不带双引号的字符串字符“”

不使用双引号初始化字符串变量是Java的许多新手经常犯的错误,因为他们往往会忘记双引号,但后来当错误在运行时弹出时会感到困惑。 具有String数据类型的变量必须用双引号引起来,以避免其代码中的“表达式的非法开始”错误。

String变量是一个字符序列。 字符可能不只是字母,它们也可以是数字,也可以是特殊字符,例如@,$,&,*,_,-,+,?,/等。因此,请将字符串变量括在双引号内,以避免一个错误。

考虑下面的示例代码; 变量运算符的值周围缺少引号在运行时生成错误。

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中修复表达式的非法开头

翻译自: https://www.javacodegeeks.com/how-to-fix-illegal-start-of-expression-in-java.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/341157.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

apt-get install 和pip install 、 apt与apt-get之间的区别 的区别

1 apt-get install 和pip install 的区别 区别: pip install 主要安装pypi上已经上传的包或库,主要和编程语言python 有关的包,可以选择版本,或者在已有的新版本上安装旧版本sudo apt-get install 是用于系统升级下载相关的软件…

在Word中如何调整编号和文字之间的间距?

https://jingyan.baidu.com/article/48b558e32a80b53e39c09a77.html 首先,打开或者新建一份需要编辑的Word文档。如图: 2 接着,选中需要调整编号与文字之间间距的文字。如图: 3 接着,右键单击鼠标,在弹…

将Spock 1.3测试迁移到Spock 2.0

了解Spock 2.0 M1(基于JUnit 5)的期望,如何在Gradle和Maven中迁移到它以及为什么报告发现的问题很重要:)。 重要说明 。 我绝对不建议您永久将您的现实项目迁移到Spock 2.0 M1! 这是2.x的第一个&#xff0…

Word使用中常用的快捷键

1. 字体放大缩小 Ctrl ] 放大字体 Ctrl [ 缩小字体 选中文本,按快捷键即可看到效果。 2 对齐文本 左对齐:Ctrl L 右对齐:Ctrl R 居中对齐:Ctrl E 3 符号上下标 下标:【Ctrl】【】 上标:【C…

创建快捷方式时如何不带“快捷方式“后缀字样?

方法一: 去除“快捷方式”字样的方法: 创建快捷方式,使用上述方法比较繁琐,我们往往直接右击要创建快捷方式的文件或文件夹,然后“发送到”→“桌面快捷方式”。这样创建的,还会带“快捷方式”字样&#xf…

xftp的简单使用

xftp的简单使用 1.下载并安装Xftp工具。打开Xftp工具,点击“新建”。 2.在“新建会话属性”中选择“名称”为主机命名,在“主机”栏输入主机IP,“协议”和“端口号”使用sftp和22,在“用户名”和“密码“栏输入账户密码。点…

This beta version of Typora is expired, please download and install a newer;解决方法

亲测可行的方法,方便永久 1.打开注册表 cmd(Win R)–>regedit 2.修改Typora权限 计算机\HKEY_CURRENT_USER\Software\Typora 右键Typora选择权限打开,然后选择拒绝 注意需要选择好组与用户名【最直接的就是所有用户与组均点…

IEEE在指定期刊下搜索相关论文

在左边Publication Title中直接输入目标期刊,搜索后结果显示指定期刊下文章

xxx is not in the sudoers file.This incident will be reported错误

一 问题解决 在执行sudo命令时会有如下提示: xx is not in the sudoers file. This incident will be reported. 原因分析:一般这种情况是创建了新用户,没有对应修改sudoers文件或者group文件。 解决方法: 方法1:…

使用WireMock进行更好的集成测试

无论您是遵循传统的测试金字塔还是采用诸如“ 测试蜂窝”这样的较新方法,都应该在开发过程中的某个时候开始编写集成测试。 您可以编写不同类型的集成测试。 从持久性测试开始,您可以检查组件之间的交互,也可以模拟调用外部服务。 本文将讨论…

Acwing刷题第一节

756 题目分析 &#xff1a; 要点如下&#xff1a; 1. 矩阵遍历&#xff1a;确定遍历方向 2. 确定遍历边界 #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int N 110; int n,m; int res[N][N];int main() {…

Jetty,Java和OAuth入门

使用Okta的身份管理平台轻松部署您的应用程序 使用Okta的API在几分钟之内即可对任何应用程序中的用户进行身份验证&#xff0c;管理和保护。 今天尝试Okta。 Jetty是一个小型&#xff0c;高度可扩展的基于Java的Web服务器和servlet引擎。 它支持HTTP / 2&#xff0c;WebSocket…

vscode 设置 sublime 的主题

vscode 怎么设置 sublime 的主题&#xff1f; VsCode中提供多种主题样式&#xff0c;供使用者选择。 由于习惯于Sublime默认主题&#xff0c;因此将VsCode主题更换为Sublime默认主题。 首先点击编辑器顶部导航菜单中的【文件】&#xff1b; 然后点击【首选项】下【颜色主题】…

spring预加载与懒加载_通过Spring将继承树加载到List中

spring预加载与懒加载我注意到有趣的Spring功能。 我的一位同事使用它将Spring Bean的整个继承树加载到列表中。 在学习Spring文档时错过了这一点。 让我们来看看Spring bean的继承树&#xff1a; 下面的代码片段是通过构造函数注入将此豆树加载到列表中的&#xff1a; Comp…

VsCode连接远程服务器并修改文件代码

一 插件安装配置 1. 安装远程开发插件Remote Development&#xff0c;在商店中搜索Remote Development并安装。 2、选择SSH Targets 安装完成后&#xff0c;vscode左侧多出了一个菜单栏&#xff0c;我们点击配置按钮配置远程服务器的地址。选择SSH Targets。 二 远程服务器配…

VsCode打开终端的方法

方法1&#xff1a;打开终端的常规方法 打开VScode后&#xff0c;鼠标左键单击窗口顶部的【查看】&#xff08;如下图红圈标注&#xff09;&#xff0c; 在下拉列表中找到【终端】&#xff08;如下图红框标注&#xff09; 鼠标左键点击【终端】即可打开终端子窗口&#xff0c;如…

Ubuntu下VScode配置ssh免密远程登录

一 实现步骤 1.在本机与远程服务器上&#xff0c; 输入ssh-keygen -t rsa&#xff0c;然后连续回车直到结束 2.在本机上执行命令 ssh-copy-id 命令 &#xff08;1&#xff09;.命令介绍 ssh-copy-id命令可以把本地的ssh公钥文件安装到远程主机对应的账户下。 达到的功能&am…

VSCode隐藏左边活动栏

用sublime时间较长&#xff0c;VsCode左边的活动栏看上去有些多余。查询隐藏活动栏的快捷键&#xff0c;但没有找到。通过vscode怎么隐藏左边栏&#xff1f; - 知乎有快捷键可以隐藏左边栏么&#xff1f;https://www.zhihu.com/question/48285162 问题&#xff0c;找到相关处理…

Typora设置标题自动标号

Typora由于默认标题无法自动标号&#xff0c;每次编辑时需要手动处理。为实现标题自动编号&#xff0c;需要进行相关操作。 一 官方说明 To achieve this, add the following to your base.user.css or [theme].user.css in the theme folder. /** initialize css counter */ …

捕获Java堆转储的7个选项

堆转储是诊断与内存相关的问题的重要工件&#xff0c;例如内存泄漏缓慢&#xff0c;垃圾回收问题和java.lang.OutOfMemoryError。它们也是优化内存消耗的重要工件。 有很多很棒的工具&#xff0c;例如Eclipse MAT和Heap Hero&#xff0c;可以分析堆转储。 但是&#xff0c;您需…