Java プロジェクトに、値の 2D 配列を含み、それと対話するための便利なメソッドを提供するクラスがあります。Location オブジェクト (2 つの値を格納するだけ) を使用して、マッピング内のポイントにアクセスし、値を返します。Location オブジェクトがグリッドのマッピング内にあるかどうかをチェックする isValid() メソッドがあります。
public boolean isValid(Location loc) {
try {
// will throw an ArrayIndexOutOfBoundsException if not valid
// occs is the 2D array within the class
occs[loc.getX()][loc.getY()];
return true;
}
catch (ArrayIndexOutOfBoundsException e) {
return false;
}
}
これで、比較を使用して値をチェックし、その場所がグリッド内に収まるかどうかを確認できることはわかっていますが、比較を実行する必要がなく、有効でない場所がチェックされるケースはほとんどないため、この方法の方が高速です。ただし、ここに問題があります。配列にアクセスする行によって返される値が割り当てられていないか、メソッドに送信されていないため、AssignmentOperators に関するエラーが発生します。それを一時値に割り当てるか、役に立たない方法で実行するのは簡単な修正であることはわかっていますが、どちらも私にとっては厄介な応急処置のように思えます。(さらに、前者は Eclipse から警告を引き出します。)
とにかく、これは優先度が低いですが、正直に言うと、このような簡単な実装ではこれほど単純なことは不可能であることに悩まされています。ありがとう!