Java / 基礎 / リフレクション / 全クラス情報を取得する

Java / 基礎 / リフレクション / 全クラス情報を取得する

実際には全クラスというは特定のパッケージ以下のクラス情報を取得する

例えば hoge.piyo.fuga パッケージ以下の全クラス情報を取得するとする

ClassLoader loader = Thread.currentThread().getContextClassLoader();
Enumeration<URL> en = loader.getResources("hoge.piyo.fuga".replace(".", "/"));
 
while(en.hasMoreElements()){
    URL url = en.nextElement();
    File dir = new File(url.getPath());
    for(String path : dir.list()){
 
        if(path.endsWith(".class")){
            // パッケージ情報とファイル名から類推されるクラス名を使って Class 情報を引き出せばよい
            // Class.forName();
        }
}

パスの処理は処理系によって若干工夫する必要があるかも。

java/basic/refrection/get_all_class_info.txt · 最終更新: 2020-11-27 10:11 by ore