我在一个 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;
}
}
现在,我知道我可以只使用比较来检查值并查看该位置是否适合网格,但这速度更快,因为它不需要运行比较并且检查无效位置的情况远在少数民族。 但是,这是我的问题:由于访问数组的行返回的值没有被赋值或发送到方法中,所以我收到有关 AssignmentOperators 的错误。我知道将它分配给一个临时值或通过一些无用的方法运行它会是一个简单的解决方案,但对我来说这两种方法似乎都是笨拙的创可贴解决方案,我想知道是否有更简洁的方法来做到这一点。 (此外,前者会引发 Eclipse 的警告。)
无论如何,这是低优先级的,但老实说,在如此简单的实现中不可能实现如此简单的事情,这让我很烦恼。谢谢!
最佳答案
this is faster as it does not need to run comparisons.
当然需要“运行比较”。它怎么可能工作?你在这一点上的推理是错误的。因此,您的问题无效。
关于java - try/catch 中必需的 AssignmentOperators,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16202076/