来自kotlin docs:
Long ...表示64位有符号整数。在JVM上,不可为空的值 此类型表示为基本类型long的值。
但是当我在我的kotlin类中发送没有postId
的json请求并且我需要将jsr 303验证应用到我的kotlin类时,它会导致我的spring启动应用程序出现问题,如下所示:
data class Comment(
@field:NotNull
val postId: Long,
...
)
所以问题是Comment类是自动构造的,postId = 0,验证不会失败。
有没有办法强制kotlin的Long类型在JVM中表示为非原始类型? (可以借助注释或编译器参数等)?
PS:我可以通过制作Long类型的postId强制它,但我不喜欢它(首先,它不应该是可空的,其次,我需要使用comment.postId!!
,这是丑陋的,它制动了kotlin无效安全的优势。