说我有方法:
public void method(int i) {
this.value =+ i;
}
如何将i限制为大于x的值?我知道这可以在方法之外完成,但我更愿意在构造函数中对它进行条件化。它会是这样的:
public void method(int i; i > x){...};
很抱歉没有自己测试,我在编写查询时想出了它。
答案 0 :(得分:9)
Java中没有可以限制参数范围的语法。如果需要int
,那么int
的所有可能值都是合法的。
然而,您可以使用方法中的代码测试值,如果IllegalArgumentException
不大于i
则抛出x
。
答案 1 :(得分:6)
您记录方法,如果调用者不遵守合同,则抛出异常。
/**
* Does something cool.
* @param i a value that must be > x
* @throws IllegalArgumentException if i <= x
*/
public void method(int i) {
if (i <= x) {
throw new IllegalArgumentException("i must be > x");
}
this.value += i;
}
答案 2 :(得分:2)
这不是方法(或构造函数)参数的内置前提条件。在调用站点或方法(或构造函数)中检查它们。您有两种选择:在方法中抛出异常或不调用方法。