Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 布尔数组的getter[][]_Java_Project - Fatal编程技术网

Java 布尔数组的getter[][]

Java 布尔数组的getter[][],java,project,Java,Project,我基本上写了一个布尔数组[x][y],x,y是坐标,如果它是真的,那么有炸弹 我和getter之间有麻烦 到目前为止,我已经 boolean[][] bombArray = new boolean[Total_Columns][10]; for(x=0,x<Total_Colmns,x++){ bombArray[x][0] = true; } public boolean getBombArray(int x,int y){ if(bombArray[x][y]

我基本上写了一个布尔数组[x][y],x,y是坐标,如果它是真的,那么有炸弹

我和getter之间有麻烦

到目前为止,我已经

boolean[][] bombArray = new boolean[Total_Columns][10];

for(x=0,x<Total_Colmns,x++){
    bombArray[x][0] = true;
    }

public boolean getBombArray(int x,int y){
   if(bombArray[x][y] .equals(true){
   return true;
   }
   else{
   return false;
   }
}
基本上网格是这样的

main()
boolean isBomb = myPanel.getBombArray(x,y) //x and y being the cursor coordinates
if(isBomb){
....
.... 
....
....
{
else{
....
.... 
....
}
********* ......... ......... ......... ......... ......... ......... ......... ......... 但是我的get不起作用,它不断抛出异常

这行:

if(bombArray[x][y] .equals(true){
大括号前缺少右括号

函数的正确版本应为:

public boolean getBombArray(int x,int y){
   // bombArray[x][y] has type 'boolean', which isn't an object, it's a primitive
   // (don't use .equals() on primitives)
   if(bombArray[x][y] == true){
       return true;
   } else{
       return false;
   }
}
但你可以把它简化得更清楚一些:

public boolean getBombArray(int x,int y){
   // bombArray[x][y] is true if there's a bomb, false otherwise
   return bombArray[x][y];
}

由于此处缺少括号,您应该会遇到编译时错误:

if(bombArray[x][y] .equals(true)
    ...
整个职能机构应为:

 return bombArray[x][y];

异常发生在运行时。我怀疑这段代码是否能够抛出异常,因为它无法编译。让我们看一下:

for(x=0,x<Total_Colmns,x++){
    bombArray[x][0] = true;
}
此外,如果您没有将单独的代码片段复制并粘贴到问题中,那么您的循环似乎超出了任何方法。在那里不行。它可能属于类的构造函数

在getter中,您有:

if(bombArray[x][y] .equals(true){
    return true;
} else {
    return false;
}
布尔值是基本类型,而不是对象,因此它没有equals方法。您可以只使用bombArray[x][y]==true。您还缺少if语句的结束语。实际上,由于数组元素已经是布尔值,您可以直接返回它:

public boolean getBombArray(int x, int y) {
    return bombArray[x][y];
}
如果通过在光标位置传递获得ArrayIndexOutofBoundsCeptions,可能需要限制getter中的x&y坐标。比如:

if (x < 0 || x >= bombArray.length || y < 0 || y >= bombArray[x].length) return false;

如果仍然出现错误和异常,请显示真正的错误消息。它们包含帮助您修复它们的信息。不工作并没有足够的信息。

有什么例外?请注意:没有理由使用getBombArray中的条件,只需返回该位置的值:return bombArray[x][y];此外,布尔函数没有.equals函数布尔函数有,虽然现在它的工作没有例外,但它的行为总是像如果isBomb=false,我可以发布我的代码,看看你是否能帮我找到某种错误?公共布尔getBombArrayint x,int y{ifx<0 | | x>TOTAL_COLUMNS-1 | | y<0 | y>TOTAL|u ROWS-2{return false;}否则{return bombArray[x][y];}@user2896762我建议打印出您正在读取的所有x&y,以确保它们是正确的。您是否将光标位置除以每个方格的大小?
if (x < 0 || x >= bombArray.length || y < 0 || y >= bombArray[x].length) return false;