You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 03:57:06