トップ 差分 一覧 ping ソース 検索 ヘルプ PDF RSS ログイン

Java パッケージ配下のクラスを取得する



目次



記事一覧

キーワード

Java パッケージ配下のクラスを取得する

[Java][コード片]

/**
 * @param package getClass().getPackage();
 */
public void getClassesInPackage(Package package) throws Exception {
    final char PACKAGE_SEP = '.';
    final char PACKAGE_RESOURCE_SEP = '/';
    
    String packageName = package.getName();
    String packageResource 
        = packageName.replace(PACKAGE_SEP, PACKAGE_RESOURCE_SEP); 
    
    logger.info("RESOURCE:" + packageResource);
    
    ClassLoader loader = ClassLoader.getSystemClassLoader();
    
    URL resource = loader.getResource(packageResource);
    
    File f = new File(resource.getPath());
    
    for (String file : f.list()) {
        if (file.matches(".*\\.class$")) {
            String className = packageName + PACKAGE_SEP + file.replaceAll("\\.class$","");
            logger.info("CLASS:" + className);
            
            @SuppressWarnings("rawtypes")
            Class cls = Class.forName(className);
            logger.info("OBJECT:" + cls.newInstance());
        }
    }
}



YAGI Hiroto (piroto@a-net.email.ne.jp)
twitter http://twitter.com/pppiroto

Copyright© 矢木 浩人 All Rights Reserved.