禁止传递方法参数的某些值

时间:2018-11-10 00:22:48

标签: java parameters

我有一个这样的方法:

void method(int number){some code}

我会这样称呼它:

method(-1)

除了在方法主体中进行检查或进行检查异常之外,java中是否有一种方法仅允许将正整数传递给数字参数?

1 个答案:

答案 0 :(得分:3)

声明已检查的异常不会使方法参数以某种方式自动验证,这只是意味着即使代码调用了文字method(1),调用方也必须检查是否抛出了该参数。

如果您的应用程序足够复杂,则可以使用Bean验证并在方法参数上施加约束:

void method(@Min(1) int number) { }

仅当您已经使用足够复杂的系统来为其提供支持(例如Spring或CDI)时,这才值得。否则,请坚持检查方法主体,如果要求失败,则抛出IllegalArgumentException。番石榴的Preconditions实用程序在这里可能会有所帮助。

(此外,如果遵循通用Java代码标准,您的代码将更容易阅读。类型名称以大写字母开头,而成员和参数名称以小写字母开头。)