| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
ページの作成:「==Java パッケージ配下のクラスを取得する== [Java]{{category コード片}} →‎* * @param package getClass().getPackage();: public void getCla…」
==Java パッケージ配下のクラスを取得する==
[Java]{{category コード片}}

/**
* @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());
}
}
}

案内メニュー