Atitit利用反射獲取子類 集合 以及繼承樹 想從父類往下找子類的確是不可能的,要知道只要類不是final的話誰都有繼承它的自由不需要事前通知父類。Eclipse實現不是重父類開始找而是重子類往回找,然後在逐個匹配。 很簡單,遍歷源代碼目錄下的所有類文件,根據類定義行通過字元串匹配找出繼承該類的所 ...
Atitit利用反射獲取子類 集合 以及繼承樹
想從父類往下找子類的確是不可能的,要知道只要類不是final的話誰都有繼承它的自由不需要事前通知父類。
Eclipse實現不是重父類開始找而是重子類往回找,然後在逐個匹配。
很簡單,遍歷源代碼目錄下的所有類文件,根據類定義行通過字元串匹配找出繼承該類的所有子類。
找某個包的子類,JDK中沒有直接提供相應的介面,應該是載入classpath下的所有類,放到類似Map<Package, Collection<Class>>容器中
如果一定要實現,覺得可以反向,即:遍歷指定的包內所有的類,看其父類是否就是預先想要的。
怎樣獲取某個類的所有子類?-CSDN論壇-CSDN.NET-中國最大的IT技術社區.html
作者:: ★(attilax)>>> 綽號:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿爾 拉帕努伊 ) 漢字名:艾龍, EMAIL:[email protected]
轉載請註明來源: http://www.cnblogs.com/attilax/
/atiplat_cms/src/com/attilax/jar/jarX.java
public List getAllClass(String jar_path) {
return JarFileView.files(jar_path);
}
列印JAR文件中的所有目錄名和文件名
Enumeration entries = jar.entries();
//列印JAR文件中的所有目錄名和文件名
while(entries.hasMoreElements())
{
Object o = entries.nextElement();
if(o.toString().contains(".class"))
{
String s=o.toString();
s=s.replace(".class", "");
s=s.replace("/", ".");
li.add(s);
}
// System.out.println(o);
}
如何用反射獲取繼承自某類或實現某個介面的所有子類的集合-CSDN論壇-CSDN.NET-中國最大的IT技術社區.html