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 上。

相关推荐
xiaoqiMikko6 小时前
Dependabot 面板全绿,不代表你的 Tomcat 没洞
java·spring boot
摇滚侠7 小时前
SpringBoot 官网 阅读笔记 启用生产就绪功能 端点
spring boot·笔记·后端
evans在进步7 小时前
HashMap 为什么线程不安全?ConcurrentHashMap 如何解决?
java·spring boot·spring
我命由我123457 小时前
匈牙利命名法
java·服务器·后端·学习·java-ee·kotlin·学习方法
10 小时前
Android 自定义 View 实战:从零打造工业级全向摇杆控件(OmniJoystickView)
android·kotlin·自定义view·摇杆控件
雨白10 小时前
深入理解 Kotlin 协程 (十一):以逸待劳,探秘 select 多路复用与并发安全策略
android·kotlin
刘名喜12 小时前
第22篇-数据库迁移-Liquibase
kotlin·springboot
小林敲代码778812 小时前
Spring Boot 3 升级踩坑:aj-captcha 行为验证码底图加载失效
java·spring boot·后端
刘名喜13 小时前
第30篇-Spring-Security-7核心概念
后端·kotlin·springboot
程序员阿明13 小时前
spring boot3访问resources下的文件,使得在浏览器url中可以直接访问
java·spring boot·后端