kotlin使用validation注解无效

validation注解不生效

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

原因分析:

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

解决办法:

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

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

相关推荐
中年程序员一枚1 小时前
spring-cloud-starter-openfeign现实中的运行逻辑
java·spring boot·后端
只能是遇见2 小时前
SpringBoot + vue 管理系统
vue.js·spring boot·后端
Jinkxs2 小时前
Java 部署:Jenkins Pipeline 构建 Java 项目(自动化)
java·spring boot
a8a3022 小时前
Spring Boot 3.3.4 升级导致 Logback 之前回滚策略配置不兼容问题解决
java·spring boot·logback
aq55356003 小时前
SpringBoot有几种获取Request对象的方法
java·spring boot·后端
steel80884 小时前
Spring Boot 整合 log4j2 日志配置教程
spring boot·单元测试·log4j
lierenvip4 小时前
Spring Boot中Tomcat配置
spring boot·tomcat·firefox
Detachym4 小时前
InsightFlow 服务配置优化与部署实践
java·spring boot·tomcat·maven·状态模式·jar
rainchestnut4 小时前
Spring AI 初步集成(1)-初始化
spring boot
流水武qin4 小时前
SpringAI多模态的基本使用
java·spring boot·spring·ai