TL;DR
内容はタイトルの通りです。
ただし、「バージョン1.4.x
未満」としたのは暫定の表現で、実際に解決されるか、解決されるとして具体的にいつになるかなど、具体的なことは定かではありません。
前提
SpringBoot
等でよく利用されるBeanValidation
は、リスト等の型パラメータ(型引数、Type Argument
とも)に対してアノテーションを振ることで、内容に対するバリデーションが可能です1。
Javaで型パラメータにアノテーションを付与したフィールドの例
private final List<@Size(max = 255, message = "{max}文字以内で入力してください。") String> hoge;
問題点
Kotlin
で同じように書いてもバリデーションが機能しません。
Kotlinで型パラメータにアノテーションを付与したフィールドの例(機能しない)
private val hoge: List<@Size(max = 255, message = "{max}文字以内で入力してください。") String>
このことは既にissue
になっています。
問題解決の目処
KT-13228にはTarget Versions: 1.4
が指定されていますが、少なくともこの問題は3年以上放置されています。
参考にさせていただいた記事
- How do we do kotlin data class validation on Collection? - Stack Overflow
- Java EE 8新機能解説 -Bean Validation 2.0編-
-
この機能がサポートされたのは
BeanValidation 2.0
から。 ↩