如果我想发布一个简单的utils API。是否建议使用 Jakarta Validation 注释(基本上在每个公共方法的每个输入参数上)来表示哪些需要是 @NonNull 或 @Positive ?
这似乎是向用户表明这些限制的好方法,但在任何地方都使用它可能太多了?什么时候需要,什么时候不推荐?
这里谈论常规的 SE Java,没有应用程序,没有 REST API,没有 Spring 或其他什么。
我关于这个主题的几个问题没有真正的答案,但有一些评论,我将总结我目前的理解。如果您有更直接的了解,请随时获得更完整的答案。
API 主要用于通过 Web API(以及反序列化)验证来自用户的 Bean。
可以使用实现(hibernate-validator)来显式验证,但它更适合在自动处理它的框架内使用。
在我看来,在常规 API(无网络、无框架)中,他们会对简单的声明性文档效果感兴趣,但找不到有关此用途的信息。如果仅以声明方式使用,我认为不需要验证器实现。
尽管如此,由于注释本身没有自动处理,也没有 IDE 简单验证,所以您仍然需要自己实现。一旦你的方法处理了一个空参数,通过做一些特定的事情(默认返回值或抛出异常),你就可以记录这个行为,@NotNull 更像是一个建议而不是一个约束。