kotlin使用validation注解无效

validation注解不生效

在 kotlin 中给构造函数的参数加上 validation 的一些注解无法生效。

原因分析:

  • 在 Java 中,注解写在在实体类属性或者 get/set 方法上;在 kotlin 中,属性直接写在构造函数中。
  • 可能是一种优先级的问题:
    • 在构造函数中,如果注解的 @Target 里除了有 ElementType.FIELD,还有 ElementType.PARAMETER ,则kotlin优先把该注解当作对函数参数的注解,而不是对属性/get方法的注解。
  • 查看注解是否生效:可以查看反编译后的java代码,或者查看它编译后的.class文件,看一看该注解是否存在于属性之上。

解决办法:

  • 添加 @field: 标识符(@field:注解名),field 标识符能够限定注解作用于属性。

  • 添加 @get:(@get:注解名) 标识符。 kotlin 会直接在字节码中生成 getter 跟 setter,这样写是显式的是表明这个注解应该作用在 getter 上。

相关推荐
学长毕设1 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
captain3764 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
学长毕设7 小时前
基于SpringBoot的餐厅管理系统-附源码
java·spring boot·后端
Goway_Hui10 小时前
【KMP for OpenHarmony】-- 在鸿蒙工程中使用 Apollo-Kotlin
华为·kotlin·harmonyos
释厄62312 小时前
AI 军备竞赛悖论——为 AI 卖游戏但 AI 需要游戏母场景
人工智能·游戏·kotlin
paopaokaka_luck13 小时前
基于springboot+vue的益暖微光公益服务平台(DeepSeek公益助手、善款信息追溯、志愿服务积分闭环、ECharts运营分析、活动状态自动流转)
java·前端·javascript·spring boot·mysql·架构·echarts
D e re k ZH14 小时前
保序回归:从 PAVA 到可并堆的单调约束优化
c++·算法·数据挖掘·回归·kotlin
Goway_Hui14 小时前
【KMP for OpenHarmony】Cache4k 0.14.0 鸿蒙适配
华为·kotlin·harmonyos
软件技术NINI15 小时前
基于SpringBoot和Vue的摇滚乐鉴赏网站
vue.js·spring boot·后端·spring·html·毕业设计·毕设
YB137515 小时前
kotlin与函数式编程
kotlin