[英]How to list all the classes on the class path that implements a given set of interfaces
[英]List all classes in a package that implements a given interface
我想在我的Java程序中列出/枚舉(在運行時)實現給定接口的所有類,並檢索該類的名稱。 可能嗎 ? 我能怎么做 ?
要詳細說明如何使用反射來做到這一點:
您可以從Thread.currentThread().getContextClassLoader()
。 使用包名稱作為路徑,獲取資源: Enumeration<URL> resources = classLoader.getResources(path);
然后,您將不得不從資源中解碼文件名,並對其進行迭代(遞歸,因為某些文件可能是目錄)。 過濾.class
文件的資源,使用Class.forName()
實例化類,並檢查它們實現的接口。
您應該使用Java Reflection
該鏈接提供了一個教程,涵蓋了您使用反射可以做的所有事情。 您可以從此處開始構建代碼
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.