You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin中JAX-RS与Bean Validation:能否废弃@NotNull注解?

Kotlin非空类型在JAX-RS(Quarkus/RESTEasy)中不被识别为必填参数的问题

在Kotlin中编写JAX-RS接口时,我们会通过非空类型声明必填参数,比如这段代码:

@GET
fun hello(@QueryParam("myParam") myParam: String): String = myParam

从Kotlin语法层面,myParam已经被明确标记为不可为空,语义上就是必填参数。

但在Quarkus环境搭配RESTEasy作为JAX-RS实现时,这个非空声明并不会触发参数必填校验——即便请求完全不带myParam,接口也不会返回参数缺失的错误。要让参数真正被校验为必填,必须额外添加@NotNull Bean Validation注解。

这种情况对Kotlin开发者来说非常反直觉,因为我们已经通过Kotlin的非空类型表达了“参数必填”的语义,却还要重复添加注解来实现相同的校验逻辑。

内容的提问来源于stack exchange,提问作者Marcel Stör

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 12:33:13