簡體   English   中英

Java軟件包掃描器-查找具有給定接口的所有類

[英]Java package scanner - find all classes with a given interface

在C#中,您可以輕松地從給定程序集中讀取所有類。

我正在尋找Java中的等效功能。 我需要它來自動將EJB bean綁定到我的Guice模塊。

不幸的是,Java中似乎沒有現成的解決方案。

在我們的項目中,我們使用了一些博客建議的略微修改的方法。 此處描述的解決方案是掃描文件系統和JAR中的類。

如果只想選擇實現某些接口的類,則可以執行一些其他檢查,例如clazz.isAssignableFrom(MyInterface.class)

程序集的Java等效項是JAR文件。 可以使用java.util.jar的類列出JAR文件的內容。

由於Java類的加載機制非常靈活,並且允許通過HTTP加載的類或動態生成的類之類的東西,因此不再需要一般的機制(例如將所有類都放入一個軟件包中),因此不可能知道所有可用的類。

這是一個http://grepcode.com/file/repo1.maven.org/maven2/com.metapossum/metapossum-scanner/1.0.1/com/metapossum/utils/scanner/PackageScanner.java

我們在輕量級Java框架Snow中使用了它,並且效果很好。

專家就像

<dependency>
   <groupId>com.metapossum</groupId>
   <artifactId>metapossum-scanner</artifactId>
   <version>1.0.1</version>
</dependency>    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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