我有一个这样的方法:
void method(int number){some code}
我会这样称呼它:
method(-1)
除了在方法主体中进行检查或进行检查异常之外,java中是否有一种方法仅允许将正整数传递给数字参数?
答案 0 :(得分:3)
声明已检查的异常不会使方法参数以某种方式自动验证,这只是意味着即使代码调用了文字method(1)
,调用方也必须检查是否抛出了该参数。
如果您的应用程序足够复杂,则可以使用Bean验证并在方法参数上施加约束:
void method(@Min(1) int number) { }
仅当您已经使用足够复杂的系统来为其提供支持(例如Spring或CDI)时,这才值得。否则,请坚持检查方法主体,如果要求失败,则抛出IllegalArgumentException
。番石榴的Preconditions
实用程序在这里可能会有所帮助。
(此外,如果遵循通用Java代码标准,您的代码将更容易阅读。类型名称以大写字母开头,而成员和参数名称以小写字母开头。)