3

我有这样的方法:

void method(int number){some code}

我会这样称呼它:

method(-1)

java中有没有办法只允许将正整数传递给数字参数,而不是检查方法体或进行检查异常?

4

1 回答 1

3

声明一个已检查的异常不会以某种方式自动验证方法参数,它只是意味着调用者有义务检查它是否被抛出,即使代码调用了文字method(1)

如果您的应用程序足够复杂,您可以使用 Bean Validation 并对方法参数进行约束:

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

仅当您已经在使用足够复杂的系统来为其提供支持时才值得这样做,例如 Spring 或 CDI。否则,只要坚持检查方法体并IllegalArgumentException在需求失败时抛出。Guava 的Preconditions实用程序在这里很有帮助。

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

于 2018-11-10T00:41:04.120 回答