在kotlin类中的字段上注释的运行时注释未正确生成

时间:2017-08-25 04:42:11

标签: kotlin

Kotlin编译器删除在字段上注释的Java运行时注释。注释如下所示。

@Target({ElementType.ANNOTATION_TYPE, ElementType.METHOD, ElementType.FIELD, ElementType.TYPE, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@com.fasterxml.jackson.annotation.JacksonAnnotation
public @interface JsonDeserialize

我在一块田地上宣布它,如下所示。

@JsonSerialize(using = IDEncryptJsonSerializer::class)
@JsonDeserialize(using = IDDecryptJsonDeserializer::class)
@Column(name = "sku_id", nullable = false)
open var skuId: Long = 0L

注释不起作用。然后,我看一下类文件,如下所示。

@field:javax.persistence.Column public open var skuId: kotlin.Long

JsonDeserialize和JsonSerialize注释是不允许的。 这两个注释在Java中运行良好。 我的kotlin版本是1.1.4。 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

最后,我找到了造成这种现象的原因。 如果我在类构造函数中声明一个变量,那么该变量上的一些注释注释可能无法正确编译。 由于kotlin编译器错误,一些注释可能会丢失。 然后,我在类体中移动变量。一切都运作良好。