對於給定指定包名獲取所有類

2021-07-10 07:49:21 字數 1207 閱讀 3068

對於乙個ioc框架來說,這個功能是最基本,但是對於初學者來說確實不好來完成。接下來我會先貼**,然後根據**分析。

/**

* 對於制定包名的載入類

* author:lizhao

* date:15/12/16

* version:1.0

* * @param pacckagename

* * @return

*/public static set> getclassset(string pacckagename)

else if(protocol.equals("jar"))}}

}}}}

} catch (ioexception e)

return classset;

}/**

* * author:lizhao

* date:15/12/16

* version:1.0

* * @param classset

* @param packagepath

* @param pacckagename

*/private static void addclass(set> classset, string packagepath, string pacckagename)

});for (file file : files)

doaddclass(classset, classname);

} else

string subpackagename = filename;

if (stringutil.isnotempty(pacckagename))

//執行新增類

addclass(classset, subpackagepath, subpackagename);}}

}/**

* 新增類載入

* author:lizhao

* date:15/12/16

* version:1.0

* * @param classset

* @param classname

*/private static void doaddclass(set> classset, string classname)

對於上面一些部分有詳細地說明,接下來對**逐一分析。

1.set

Spring掃瞄出指定包下的所有類名

無論是什麼框架,包括spring,完成這個功能底層都是用的classloader.getresources 或classloader.getsystemresources 方法實現的,即先找出指定classpath下的 資源 可能是檔案也可能是jar包,然後通過檔案i o讀取jar,把每乙個.cla...

PHP獲取類名及所有函式名

php獲取類名及所有函式名1.獲取行號 檔案路徑檔名 類名 方法名的常量 line 檔案中的當前行號。file 檔案的完整路徑和檔名。如果用在包含檔案中,則返回包含檔名。自 php 4.0.2 起,file 總是包含乙個絕對路徑,而在此之前的版本有時會包含乙個相對路徑。function 函式名稱 p...

從基類中獲取所有子類名

有的時候,我們需要獲取某個基類中的所有子類,從而進行統一管理。這裡有乙個簡單易行的實現 class program static bool issubclassof type type,type basetype b b.basetype return false public class base...