Kotlin编译器删除注释在字段上的Java运行时注释。注释如下所示。在kotlin类中的字段上注释的运行时注释未正确生成
@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。 我该如何解决这个问题?
嗨,我尝试了Kotlin'1.1.3-2'和'1.1.4-2'的确切例子。适用于他们两人。你使用哪个反编译器?你可能会提供一个微小的github回购问题来重现问题吗? – guenhter
@guenhter谢谢你的回复,我解释了答案的理由。 – Iconoclast