Kotlin:我可以强制Not Nullable Long在JVM中表示为非原始类型吗?

时间:2018-04-18 13:24:51

标签: java kotlin primitive-types

来自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无效安全的优势。

0 个答案:

没有答案