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 に答える