2017-02-22 74 views

回答

3

由於類加載器的實現,JVM上的Kotlin在這方面遇到與Java相同的問題。

類加載器不需要告訴VM可以提供哪些類,而不是它們只是類手請求,並且必須返回一個類或拋出異常。

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

總結掛線,有一些解決方案,讓您檢查您當前的類路徑。

  • Reflections庫是非常簡單的,有很多的像得到一個類的所有亞型附加功能,得到所有類型/成員註釋一些註釋,任選註釋參數匹配
  • GuavaClassPath,它返回ClassInfo POJO's - 對於您的用例來說還不夠,但對於知道幾乎無處不在的番石榴是有用的。
  • 通過查詢類加載器資源和代碼源編寫自己的代碼。除非你絕對不能添加庫依賴,否則不會建議這條路線。
相關問題