我有一个带有注释的接口
@Target(AnnotationTarget.PROPERTY)
annotation class Foo()
interface Bah {
@Foo val prop: String
}
我正在实现杰克逊上下文解串器,我需要从接口中的方法中选取此批注。
override fun createContextual(ctxt: DeserializationContext, property: BeanProperty?): JsonDeserializer<*> {
val clzz = ctxt.contextualType.rawClass as Class<T>
for (method in clzz.methods) {
val anns = method.getAnnotationsByType(Foo::class.java)
ctxt.contextualType
是JavaType。我从中获取了clzz,这产生了一个Bah类型的类(即接口)。我可以迭代这些方法,其中包括“ prop”;但是,道具没有注释。
如果我将注释站点修改为如下所示,它将起作用:
interface Bah {
val prop: String
@Foo() get
但是,这很丑。如何修改内容,以便可以直接从interface属性检索?
谢谢