2

例如我可以有一个变量

int x;

并告诉编译器 x 永远不能大于 20 或小于 -20 而不必编写一个方法来检查循环中每次迭代的值?(我应该在这里提到这是针对基于矢量的游戏的速度变量。

4

3 回答 3

7

仅通过 setter 方法设置变量。在此方法内部,如果尝试将值设置为超出范围,则抛出异常。请注意,这不适用于编译器方面,而是在运行时,我认为这种检查是必要的。

于 2012-10-31T16:58:37.803 回答
5

不,您必须在程序中手动检查它

于 2012-10-31T16:51:29.573 回答
1
assert  -20 < x && x < 20 : "Out of range!";

使用 -ea 参数执行,java 将检查条件,没有 -ea 性能处于最佳状态。

如果断言不会被验证java.lang.AssertionError将被抛出

于 2012-10-31T16:53:26.050 回答