我在一个 Java 项目中有一个类,它包含一个二维值数组,并提供了与之交互的有用方法。它使用 Location 对象(仅存储两个值)来访问映射中的点并返回值。它有一个方法 isValid(),用于检查 Location 对象是否在网格的映射中。
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;
}
}
现在,我知道我可以使用比较来检查值并查看该 loc 是否适合网格,但这更快,因为它不需要运行比较,并且检查的无效位置的情况远在少数。但是,这是我的问题:由于访问数组的行返回的值没有被分配或发送到方法中,因此我收到有关 AssignmentOperators 的错误。我知道将它分配给一个临时值或通过一些无用的方法运行它是一个简单的解决方法,但这两种方法对我来说似乎都是愚蠢的创可贴解决方案,我想知道是否有更清洁的方法来做到这一点。(此外,前者会引起 Eclipse 的警告。)
无论如何,这是低优先级,但让我很烦恼的是,这么简单的事情在如此简单的实现中是不可能的,老实说。谢谢!