首页 > 解决方案 > 如何调用具有多个参数(包括二维数组)的方法

问题描述

如果 mat[r][k] 的值为正,我试图创建一个返回 true 的方法,但错误消息说“PrintStream 类型中的方法 println(int) 不适用于参数 (int[] [],整数,整数)

对方法的调用:

public static void main(String[] args) {

int[][] matrix = { { 1, 2, 3 }, { 4, -5, 6 }, { -7, 8, 0 } };

    System.out.println(isPositive(matrix), 2, 3);


}

方法:

public static String isPositive(int[][] mat, int r, int k) {
r--;
k--;

boolean value = false;

 for (int i = 0; i < mat.length; i++) {
    for (int j = 0; j < mat[i].length; j++) {

        if (mat[r][k] > 0) {
            value = true;
        }
    }
}
String out = "(" + mat[r][k] + ") : " + value;
return out;
}

标签: arraysmethodsparameterscalldimensional

解决方案


我认为您只是将括号放在错误的位置。下面的代码行是isPositive用 just调用的matrix,但它需要另外 2 个int参数:

System.out.println(isPositive(matrix), 2, 3);

当我以这种方式运行它时,我得到了错误:

method isPositive in class Test cannot be applied to given types;
    System.out.println(isPositive(matrix), 2, 3);
                       ^
required: int[][],int,int
found: int[][]
reason: actual and formal argument lists differ in length

您应该可以将其更改为以下代码:

System.out.println(isPositive(matrix, 2, 3));

现在,它isPositive使用它期望的 3 个参数调用,然后返回到println. 我这样做并运行了它,并得到了这个输出:(6) : true.


推荐阅读