对于我在 Kotlin 中的数据对象,我为 GSON 添加了一个自定义注释以具有排除规则。
在过去,它工作得很好,现在它没有出现在我的类反射 ( this.javaClass.declaredFields[3].annotationsis null) 中,也没有出现在编译的 java 输出中。
我尝试了不同的事情,比如升级我的 kotlin 版本、添加 kotlin-kapt、使用不同的@Retention类型、重新启动我的计算机(你永远不知道)并查看了其他注释。那些其他注释(例如 Hibernate a @OneToOne)显示没有问题。
注释定义:
@Retention(AnnotationRetention.RUNTIME)
@Repeatable
@Target(
AnnotationTarget.FIELD,
AnnotationTarget.PROPERTY_GETTER,
AnnotationTarget.PROPERTY_SETTER,
AnnotationTarget.PROPERTY,
AnnotationTarget.VALUE_PARAMETER
)
annotation class ExcludeFromJSON
在数据类中的用法:
@Entity
@Table(name = "user")
class User (
var username: String = "",
var email: String = "",
@ExcludeFromJSON
private var password: String
) {}
我希望注释出现在 javaClass 反射和编译的 java 代码中。它既不。
编译后的密码 var(无注释...):
private final var password: kotlin.String /* compiled code */`
九州编程
相关分类