Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种方法可以在Java中设置变量的边界?_Java_Bounds - Fatal编程技术网

有没有一种方法可以在Java中设置变量的边界?

有没有一种方法可以在Java中设置变量的边界?,java,bounds,Java,Bounds,例如,我可以有一个变量吗 int x; 告诉编译器x永远不能大于20或小于-20,而不必编写一个方法来检查循环中每次迭代的值?(我应该在这里提到这是一个基于向量的游戏的速度变量。不,你必须在你的程序中手动检查它。assert-20

例如,我可以有一个变量吗

int x;

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

不,你必须在你的程序中手动检查它。

assert-20assert  -20 < x && x < 20 : "Out of range!";
使用-ea参数执行时,java将检查条件,如果不使用-ea,性能将处于最佳状态


如果断言未被验证,则将抛出

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

在何处您需要在问题中描述的情况下进行迭代?您需要滚动您自己的BoundedInt类。Bounded:性能保证较差…通常的模式是在传入超出范围的值时从setter抛出
IllegalArgumentException
。好的,谢谢。我接受这个答案这是第一次,其他人只是证实了你所说的。