【问题标题】:Issue with cannot be converted to char[][] by method invocation conversion无法通过方法调用转换将问题转换为 char[][]
【发布时间】:2015-02-24 00:50:20
【问题描述】:

这是我的方法,它从所有返回整数的 openCheckHorizo​​ntal、openCheckVertical、openCheckDiagonal 方法中获取总数。

    public static void printRecord(char[][]data, int[][]record ){
    int horizontal=0;
    int vertical=0;
    int diagonal=0;
    int total=0; 
     for(int row=0; row<data.length;row++){
       for(int col=0; col<data[row].length;col++){
      ***horizontal = openCheckHorizontal(data[row][col]);
      ***vertical=openCheckVertical(data[row][col]);
      ***diagonal=openCheckDiagonal(data[row][col]);
      total = horizontal+vertical+diagonal; 
      record[row][col]=total; 
    }//end of second loop 
}//end of first loop 
for(int row =0; row<record.length; row++){
  for(int col=0; col<record[row].length;col++){
        System.out.print(record[row][col]); 
    }//end of second loop 
    System.out.println(); 
   }//end of first loop 
  }//end of record method 

我得到的错误是:

对于标有星号的行,无法通过方法调用转换将实参char转换为char[ ][ ]。我不知道为什么会这样。我想既然我调用的方法返回整数,我可以将它们存储为整数并使用我的数组调用它。

这三个方法所取的参数是:char[ ][ ] myArray

如果有人可以帮助我,那就太好了!

【问题讨论】:

  • 被调用方法的方法签名是什么?他们接受char 还是char[][]
  • data[row][col]char,而不是 char[][]

标签: java compiler-errors


【解决方案1】:

看起来您可能正在传递该数组位置的值,即char。尝试更改您调用的三个方法的签名以将char 作为参数。或者,如果您打算传递整个数组,您应该可以只传递 data 而不是位置 data[row][col]

【讨论】:

  • 我需要计算数据数组的每个值周围的字符数,这就是为什么我将它设置为 char[ ][ ] 因为它是一个充满 char 值的数组
  • 如果我更改方法的参数,那么我将无法计算每个值周围的字符数。我只是有点困惑
  • 如果你想传入整个数组,你不只是传入“数据”而不是指定的位置。 'data[row][col]' 表示数组中的第一个位置没有?
  • horizontal = openCheckHorizontal(data); vertical = openCheckVertical(data); diagonal = openCheckDiagonal(data);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多