如何在kotlin中使用反射来查找包中的所有类

是否有可能在给定的包中找到所有的kotlin类?

我也只需要注释类,但它不是一个大问题。 有什么建议么 ?

由于类加载器的实现,JVM上的Kotlin在这方面遭受与Java相同的问题。

类加载器不需要告诉虚拟机可以提供哪些类,而只是递交类的请求,而不得不返回类或抛出异常。

来源和更多信息: Can you find all classes in a package using reflection?

总结链接的线程,有许多解决方案可以让你检查你当前的班级路径。

  • Reflections库非常简单,并且具有许多附加功能,比如获取一个类的所有子类型, 获取所有类型/成员的注释以及注释参数匹配等。
  • 番石榴有ClassPath ,它会返回ClassInfo POJO的 – 对于您的用例来说还不够,但是有用的是知道Guava几乎在任何地方都可用。
  • 通过查询类加载器资源和代码源来编写自己的代码。 除非你绝对不能添加库依赖,否则不会建议这条路线。