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から。 ↩