gpt4 book ai didi

java - 使用注释验证构造函数参数或方法参数,并让它们自动抛出异常

转载 作者:行者123 更新时间:2023-12-03 18:20:24 53 4
gpt4 key购买 nike

我正在验证构造函数和方法参数,因为我希望软件(尤其是它的模型部分)快速失败。

因此,构造函数代码通常看起来像这样

public MyModelClass(String arg1, String arg2, OtherModelClass otherModelInstance) {
if(arg1 == null) {
throw new IllegalArgumentsException("arg1 must not be null");
}
// further validation of constraints...
// actual constructor code...
}

有没有办法用注解驱动的方法来做到这一点?像这样的东西:

public MyModelClass(@NotNull(raise=IllegalArgumentException.class, message="arg1 must not be null") String arg1, @NotNull(raise=IllegalArgumentException.class) String arg2, OtherModelClass otherModelInstance) {

// actual constructor code...
}

在我看来,这会使实际代码更具可读性。

理解有注释是为了支持 IDE 验证(如现有的 @NotNull 注释)。

非常感谢您的帮助。

最佳答案

在公共(public)方法中使用断言来检查参数不是一个好主意。在编译过程中,可以从代码中删除所有断言,因此不会在运行时执行任何检查。此处更好的解决方案是使用 Apache Commons 等验证框架。在这种情况下,您的代码可能是:

public MyModelClass(String arg1, String arg2, OtherModelClass otherModelInstance) {
org.apache.commons.lang3.Validate.notNull(arg1, "arg1 must not be null");
// further validation of constraints...
// actual constructor code...
}

关于java - 使用注释验证构造函数参数或方法参数,并让它们自动抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3028296/

53 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com