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