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

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

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

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

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

可以借助示例进行解释:

Class LocalVar {
public static void main(String args[])
{
int variable_local = 10
}
}

将修饰符与局部变量一起使用会产生错误

2.另一方法内部的方法

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

下面是代码的演示:

Class Method
{
public static void main (String args[])
{
public void calculate() { }
}
}

内部定义一个方法而另一个方法是非法的
Class Method
{
public static void main (String args[])
{
void calculate() { }
}
}

该错误不仅仅取决于修饰符的出现

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

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

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

class Vehicle
{
public static final void main(String args[])
{
public   class Car { }
}
}

不允许在方法内部声明带有修饰符的类

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);
}
}

块定义中缺少大括号会导致错误。

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

如何在Java中修复表达式的非法开头相关推荐

  1. java 正则表达式 开头_如何在Java中修复表达式的非法开头

    java 正则表达式 开头 您是否遇到过这个令人难以置信的错误,想知道如何解决它? 让我们仔细阅读一下,研究如何解决表达式Java非法开头错误. 这是一个动态错误,这意味着编译器会发现某些不符合Jav ...

  2. 如何在Java中使用表达式_如何在java中计算表达式?

    我在快速谷歌后发现了这段代码: import java.util.Stack; /** * Class to evaluate infix and postfix expressions. * * @ ...

  3. 如何在Java中处理ConcurrentModificationException? 在循环中从ArrayList中删除元素时要当心...

    从Java中从ArrayList中删除元素时常见的问题之一是ConcurrentModificationException. 如果您对索引使用经典的for循环或增强的for循环,并尝试使用remove ...

  4. 如何在Java中使用Lambda表达式

    如何在Java中使用Lambda表达式 Lambda表达式是Java 8新增的一个非常强大的特性.它使得函数式编程在Java中变得更加容易和直观. Lambda表达式的基础知识 在Java中,Lamb ...

  5. 如何在Java中比较日期? [重复]

    本文翻译自:How to compare dates in Java? [duplicate] This question already has answers here : 这个问题已经在这里有了 ...

  6. java整数的因式分解_如何在Java中找到整数的质数-因式分解

    java整数的因式分解 编程课程中的常见家庭作业/任务之一是关于Prime Factorization. 要求您编写一个程序以找到给定整数的素因子 . 一个数字的素数因子是将精确地除以给定数字的所有素 ...

  7. 如何在Java中找到整数的质因数–因式分解

    编程课程中的常见家庭作业/任务之一是关于Prime Factorization. 要求您编写一个程序以找到给定整数的素因子 . 一个数字的质数因子是将精确地除以给定数字的所有质数. 例如,35的素数因 ...

  8. java 精确到微妙_如何在Java中以微秒精度测量时间?

    我在Internet上看到应该使用System.nanoTime(),但这对我不起作用-它为我提供了毫秒级的时间.我只需要函数执行前后的微秒,就可以知道需要多长时间.我正在使用Windows XP. ...

  9. 如何在Java中创建一个新的List

    本文翻译自:How to make a new List in Java We create a Set as: 我们创建一个Set为: Set myset = new HashSet() How d ...

最新文章

  1. 上海银行:转型创新网银与应用质量双赢
  2. windows 同时安装 python2 python3
  3. oracle 00966,oracle错误代码一览表
  4. 2014-02-20
  5. HTML5与HTML4的比较
  6. hdu 5312 数学
  7. Cinematic Tracking Title for fcpx(电影自适应伸展效果文字标题)
  8. 第31课 3721数-2021.10.30 《小学生C++趣味编程》
  9. 一只小蜜蜂(HDU-2044)
  10. ★LeetCode(784)——字母大小写全排列(JavaScript)
  11. 《计算机操作系统》大作业【参考代码解读】
  12. Redis集群案例与场景分析
  13. string取某个符号后面的的_String.replace 用的不对性能可能差 10 倍,你用对了吗?...
  14. 什么是SIT测试,、UAT测试?
  15. matlab 3sls,几种常用的计量经济学软件
  16. java rslinx_如何使用AB PLC仿真软件Studio 5000 Logix Emulate
  17. 卡诺模型(用户需求分析模型)
  18. SQL Server 升序和降序排列
  19. C++学习(11)(综合题)
  20. 微信小程序有哪些优点和价值

热门文章

  1. 【2018.4.7】模拟赛之三-ssl2384 字符串【字符串】
  2. 【模板】分散层叠算法(P6466)
  3. 【LCT】弹飞绵羊(luogu 3203/金牌导航 LCT-2)
  4. 纪中B组模拟赛总结(2020.2.13)
  5. CF650E Clockwork Bomb(树上构造类问题、并查集)
  6. Problem H Rock Paper Scissors,FFT
  7. vue调用methods里的方法
  8. 解决idea中xml文件报红问题
  9. double类型进行比较排序
  10. ubuntu下inotifywait实现目录、文件监控【包含子目录】