为什么Java运行时提示需将main方法的参数改为String类型数组
错误产生原因
- 根本原因是你编写的main方法不符合Java程序入口的固定签名要求。JVM启动执行类时,只会识别签名为
public static void main(String[] args)的方法作为程序入口,你当前代码中的main方法形参类型为int[] args,和规范要求的String[]类型不匹配,因此JVM判定类中不存在符合要求的入口方法,抛出对应错误。 - 代码可以正常编译是因为你写的只是一个名为main的普通重载方法,Java语法支持类中自定义重载的main方法,只要语法合法就可以通过编译,只是这类自定义的main方法不会被JVM当作程序启动入口。
修复方案
直接将main方法的参数定义从int[] args修改为String[] args即可解决该报错。
额外说明:你当前代码中还有两处不影响本次报错的逻辑问题:
- 外层for循环条件为
i<0,初始值i=0,永远不会进入循环体,代码不会有任何输出- 两个if判断语句末尾都加了分号,相当于if的执行块为空,后续的打印语句不受if条件控制,就算进入循环也会直接执行打印
内容的提问来源于stack exchange,提问作者Student321
相关产品推荐
相关产品推荐

