如何访问对象数组中的对象数组?
我的代码:
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方法返回一个布尔值,但每个多边形中有一个单独的行对象数组....如何访问该方法? (注意......我不知道这个确切的代码是否能满足我的要求,但无论哪种方式我都需要能够访问该方法)
答案 0 :(得分: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;
}