La anotación getAnnotation for Java utilizada en el método Kotlin devuelve null

Diga, tengo la siguiente interfaz:

interface AppRepository : GraphRepository<App> { @Query("""MATCH (a:App) RETURN a""") fun findAll(): List<App> } 

En una testing, quiero verificar detalles de la cadena de consulta y, por lo tanto, hago

 open class AppRepositoryTest { lateinit @Autowinetworking var appRepository: AppRepository @Test open fun checkQuery() { val productionMethod = appRepository.javaClass.getDeclanetworkingMethod("findAll") val productionQuery = productionMethod!!.getAnnotation(Query::class.java) //demo test assertThat(productionQuery!!.value).isNotEmpty() //KotlinNPE } } 

Por una razón que no entiendo, productionQuery es null . He comprobado dos veces que los types de la Query importada en la class de testing y la Query en el repository son los mismos.

Por lo tanto, ¿por qué es productionQuery null en este caso?

Está cargando annotations en findAll desde la class implementadora (es decir, la class de la instancia de appRepository ), no en findAll desde la interfaz. Para cargar annotations desde AppRepository en AppRepository lugar:

 val productionMethod = AppRepository::class.java.getDeclanetworkingMethod("findAll") val productionQuery = productionMethod!!.getAnnotation(Query::class.java)