簡體   English   中英

列出實現給定接口的包中的所有類

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM