为什么Java代码运行报错:实际与形式参数列表长度不匹配
报错原因
- 调用方法的参数数量不匹配:你定义的
link方法需要传入Scanner和String[]两个参数,但是在main方法里调用link()时没有传入任何参数,形参和实参的长度不一致,触发该报错。 - 入口方法签名错误:Java程序的入口
main方法必须遵循标准格式public static void main(String[] args),你当前写的无参main方法不符合要求,即使修复参数问题也无法正常启动程序。 - 补充说明:你的
link方法逻辑中不需要用到String[] args参数,属于多余定义,可以直接删除这个形参。
修复后完整代码
import java.util.Scanner; public class CopyOfCopyOfethanrun { // 修正为Java标准的main方法入口签名 public static void main(String[] args) { Scanner kb = new Scanner(System.in); // 调用link方法时传入已创建的Scanner对象 link(kb); } // 删除多余的String[] args形参,仅保留需要的Scanner参数 static void link(Scanner kb) { System.out.print("\n\n Enter Link: "); String input = kb.nextLine(); String firstfiftysix = ""; if (input.length() > 56) { firstfiftysix = input.substring(0, 56); } else { firstfiftysix = input; } System.out.println(firstfiftysix); } }
修复说明
- 调整
main方法为Java标准入口签名,确保程序可以正常启动 - 删除
link方法中无用的String[] args形参,仅保留需要的Scanner参数 - 调用
link方法时传入已经创建好的Scanner对象,保证形参和实参的数量、类型完全匹配 - 原有截取URL前56个字符的逻辑无需修改,已经可以满足需求
内容的提问来源于stack exchange,提问作者ethanm831
相关产品推荐
相关产品推荐

