0

如何访问对象数组中的对象数组?

我的代码:

private boolean intersect(Polygon[] polygons, Line[] the_path, int i, int j)
{
   int k = 0;
   boolean intersect;

   if(intersect == true)
   {
       for(i = 0; i < polygons.length; i++)
        for(j = 0; j < polygons._lines.length; j++)
           for(k = 0; k < the_path.length; k++)
           intersect = polygons._lines[j].intersect(the_path[k]);
   } 

   return intersect;
}

线数组中的 intersect 方法返回一个布尔值,但是每个多边形中都有一个单独的线对象数组......我该如何访问该方法?(注意..我不知道这个确切的代码是否会做我想要的,但无论哪种方式我都需要能够访问该方法)

4

1 回答 1

1

我认为您不小心将索引遗漏为多边形(例如polygons[i])。此外,目前您已经intersect被分配了一个值,这意味着它正在覆盖在之前的循环迭代中intersect()赋予布尔值的任何其他值。intersect我添加了一条if语句,如果发现这种情况,它将立即退出函数。intersect = intersect || ... .intersect()但是,如果您想保留该变量,您可以改为执行类似的操作。

尝试这个:

private boolean intersect(Polygon[] polygons, Line[] the_path, int i, int j) {
  int k = 0;

  for (i = 0; i < polygons.length; i++) {
    for (j = 0; j < polygons[i]._lines.length; j++) {
      for (k = 0; k < the_path.length; k++) {
        if (polygons[i]._lines[j].intersect(the_path[k])) {
          return true;
        }
      }
    }
  }

  return false;
}
于 2013-06-16T00:11:43.627 回答