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