如何限制方法的int参数允许的范围

时间:2014-11-25 18:50:54

标签: java

说我有方法:

public void method(int i) {
    this.value =+ i;
}

如何将i限制为大于x的值?我知道这可以在方法之外完成,但我更愿意在构造函数中对它进行条件化。它会是这样的:

public void method(int i; i > x){...};

很抱歉没有自己测试,我在编写查询时想出了它。

3 个答案:

答案 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)

这不是方法(或构造函数)参数的内置前提条件。在调用站点或方法(或构造函数)中检查它们。您有两种选择:在方法中抛出异常或不调用方法。