Java代码已写分号却报缺少分号编译错误该如何解决?
错误原因排查
你遇到的是Java编译器语法提示误报的问题,实际Main myMethod();这行末尾的分号没有问题,错误根源是这行的语法结构完全不符合Java规范:
Java中不存在「类型 + 标识符 + 空括号 + 分号」的合法语法。编译器解析代码时,读到Main myMethod部分会判定你是要声明一个Main类型的变量,按照变量声明的语法规则,后续只能跟;结束声明,或者跟=做赋值初始化,而你后续跟的是(,不满足变量声明的语法要求,因此编译器会误判你在Main myMethod后漏写了分号,抛出java: ';' expected的错误。
修复方案
根据你这行代码的实际用途选择对应写法:
- 目的是声明名为myMethod的Main类型变量
删掉语句末尾的()即可,仅声明写法:
同步完成实例化的写法:Main myMethod;Main myMethod = new Main(); - 目的是调用返回值为Main类型的myMethod方法
不需要在前面加类型声明,不需要接收返回值的写法:
需要接收返回值的写法:myMethod();Main result = myMethod();
内容的提问来源于stack exchange,提问作者Lloyd
相关产品推荐
相关产品推荐

