Java调用需boolean数组参数的countTrue方法提示参数不适用,求报错原因
错误原因
你定义的countTrue方法要求传入的参数是boolean[](布尔数组)类型,但你在main方法里调用方法时的写法不符合Java的数组创建语法,Java不会把[true, false, false, true, false]识别为一个数组,而是会将括号内的5个布尔值判定为5个独立的入参,和方法要求的参数类型、数量都不匹配,因此抛出参数不适用的报错。
修复方案
方案1:按原有方法定义调整传参写法
调用方法时使用Java匿名数组的标准创建语法,将main方法里的调用行修改为:
int x = GUI.countTrue(new boolean[]{true, false, false, true, false});
即可正常运行。
方案2:调整方法定义为可变参数(可选)
如果你希望调用方法时可以直接传入多个布尔值、不需要手动封装数组,可以把countTrue方法的参数定义修改为可变参数类型:
public static int countTrue(boolean... arr) { // 原有方法内部逻辑不需要修改,可变参数在方法内部会自动被处理为数组 int count = 0; for (boolean element : arr) { if (element) { count++; } } return count; }
修改后直接写GUI.countTrue(true, false, false, true, false)就可以正常执行。
内容的提问来源于stack exchange,提问作者user14728703
相关产品推荐
相关产品推荐

