我为Kotlin提供了一个简单的数据类
data class Person(val name: String, @get: Min(18) val age: Int)
我实际上是从CSV文件构建这个类,然后使用apache CSV解析器读取CSV。即使我有一些age
字段小于18的数据,测试仍然没有错误。
看起来这个注释不适用于Kotlin?
答案 0 :(得分:1)
您目前正在使用Min
注释对构造函数参数进行注释 - 我相信您应该使用use-site target来注释该字段:
data class Person(val name: String, @field:Min(18) val age: Int)
答案 1 :(得分:1)
尝试将注释@Validated
添加到类中(尽管可能只适用于spring bean)。这些注释不会阻止设置的值,只是允许从现有实例获取带有验证错误列表的BindingResult
。如果需要阻止设置值,可以使用自定义委托。
val age: Int by MyDelegates.min(18)