Cómo encontrar todas las classs en un package usando la reflexión en kotlin

¿Es posible encontrar todas kotlin classs de kotlin en un package dado?

También necesito solo classs anotadas, pero no es gran cosa. Alguna sugerencia ?

Kotlin en la JVM sufre el mismo problema que Java a este respecto debido a la implementación de los cargadores de class.

No es necesario que los cargadores de classs le digan a la VM qué classs puede proporcionar, sino que simplemente se les entregan las requestes de classs y tienen que devolver una class o lanzar una exception.

Fuente y más información: Can you find all classes in a package using reflection?

Para resumir el hilo enlazado, hay una serie de soluciones que le permiten inspeccionar su ruta de class actual.

  • La biblioteca Reflections es bastante sencilla y tiene muchas funciones adicionales, como get todos los subtypes de una class, get annotations de todos los types / miembros con alguna anotación, opcionalmente con la coincidencia de parameters de anotación , etc.
  • Guava tiene ClassPath , que devuelve los POJO de ClassInfo , no lo suficiente para su caso de uso, pero es útil saber que Guava está disponible en casi todas partes.
  • Escribe el tuyo consultando los resources de los cargadores de classs y las fonts de los códigos. No sugeriría esta ruta a less que no pueda agregar dependencies de biblioteca.
  • No se puede hacer que la API invoque urlfetch.Fetch en un hilo que no sea el hilo de request original ni un hilo creado por ThreadManager
  • Funciones previas en Kotlin: buenas prácticas
  • ¿Cómo verificar la class "instanceof" en kotlin?
  • Diálogo personalizado de Kotlin Parámetro especificado como no nulo
  • Kotlin kapt y construcción de componentes Android architecture fallan
  • ¿Cómo acceder al object compañero de Kotlin en Java?
  • ¿Cuáles son los límites en el despacho dynamic / doble en Kotlin?
  • viewGroup return null en el adaptador Recyclerview
  • Obteniendo la class actual
  • OkHttp CookieJar no puede agregar cookies para solicitar
  • ¿Cómo se transfiere a una interfaz / class de la class Kotlin de String?