例如我可以有一个变量
int x;
并告诉编译器 x 永远不能大于 20 或小于 -20 而不必编写一个方法来检查循环中每次迭代的值?(我应该在这里提到这是针对基于矢量的游戏的速度变量。
仅通过 setter 方法设置变量。在此方法内部,如果尝试将值设置为超出范围,则抛出异常。请注意,这不适用于编译器方面,而是在运行时,我认为这种检查是必要的。
不,您必须在程序中手动检查它
assert -20 < x && x < 20 : "Out of range!";
使用 -ea 参数执行,java 将检查条件,没有 -ea 性能处于最佳状态。
如果断言不会被验证java.lang.AssertionError将被抛出