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

Java代码编译报错:实参与形参长度不匹配问题求解

Java编译报错"actual and formal argument lists differ in length"解决办法

首先你的猜测有误,该报错和方法返回值为void无关,触发报错的核心原因有两个:

  1. 你定义的processUbuntu方法要求传入3个形参(String类型的name、String类型的date、double类型的number),但在main方法中调用时没有传入任何实参,参数长度不匹配,这就是该报错的直接触发原因。
  2. processUbuntu是未加static修饰的实例方法,静态的main方法无法直接调用,修复参数问题后还会触发"非静态方法不能从静态上下文引用"的编译错误,需要同步处理。

根据你需要保留原有代码格式的要求,提供两种可选择的修复方案:

方案1:允许调整方法形参列表(代码逻辑更合理)

由于你在processUbuntu方法内部直接覆盖了所有形参的数值,外部传入的参数没有实际作用,可以直接删除形参列表,同时给方法加static修饰即可,修复后完整代码如下:

public class RSubuntuPgm1 { 
    public static void main (String arg[]){
        
        System.out.printf("\ngedit");
        System.out.printf("\nCtrl + S");
        System.out.printf("\nAlt + F4");
        processUbuntu();
    }
    public static void processUbuntu(){

        String name = "Sean";
        double number = 2021.99;
        String date = "Fall";
        System.out.printf("\n%s",name);
        System.out.printf("\n%.5f",number); // 10 spaces, 5 more spaces for decimals
        System.out.printf("\n%S",date); //capital S makes all capital
    }
}

方案2:必须保留原有方法的三个形参定义

如果作业要求不能修改processUbuntu的形参列表,只需要在调用方法时传入三个对应类型的参数,同时给方法加static修饰即可,传入的参数会被方法内部的赋值覆盖,不影响最终输出,修复后完整代码如下:

public class RSubuntuPgm1 { 
    public static void main (String arg[]){
        
        System.out.printf("\ngedit");
        System.out.printf("\nCtrl + S");
        System.out.printf("\nAlt + F4");
        processUbuntu("", "", 0);
    }
    public static void processUbuntu(String name, String date, double number){

        name = "Sean";
        number = 2021.99;
        date = "Fall";
        System.out.printf("\n%s",name);
        System.out.printf("\n%.5f",number); // 10 spaces, 5 more spaces for decimals
        System.out.printf("\n%S",date); //capital S makes all capital
    }
}

内容的提问来源于stack exchange,提问作者Angry Toast

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:30:02