Java调用无参方法报illegal start of expression错误求助
错误原因
你遇到的编译报错和导入依赖无关,属于Java语法错误:Java不允许在一个方法的内部定义另一个方法,你目前把validate()方法的完整定义写在了main()方法的大括号范围内,属于方法嵌套定义,不符合Java语法规范,因此编译器会提示表达式非法。
修正方案
把validate()方法的定义移到main()方法外部,和main()同级,作为类的成员方法即可,修正后的代码如下:
import java.util.Scanner; import java.lang.Math; /// Start Program public class javamethods { public static void main(String[] args) { // Create Scanner object Scanner input = new Scanner(System.in); validate(); } public static void validate() { System.out.print("Hi World"); } }
补充说明
- 同类下的静态方法可以直接互相调用,不需要额外创建类实例,你原来的
validate()调用逻辑不需要做任何调整 - 如果你使用的是Java 16及以上版本,确实可以在方法内部写局部方法,但需要严格遵循局部变量的定义规则,必须在调用之前完成定义,且不能加访问修饰符(比如
public、static都不能加),不过常规业务开发不推荐这种写法,可读性很差。
内容的提问来源于stack exchange,提问作者ripsly25
相关产品推荐
相关产品推荐

