「Java パッケージ配下のクラスを取得する」の版間の差分
ナビゲーションに移動
検索に移動
| 1行目: | 1行目: | ||
| − | ==Java パッケージ配下のクラスを取得する== | + | ==[[Java パッケージ配下のクラスを取得する]]== |
| − | [[Java]] | | + | [[Java]] | [[Category:コード片]] |
/** | /** | ||
| 7行目: | 7行目: | ||
public void getClassesInPackage(Package package) throws Exception { | public void getClassesInPackage(Package package) throws Exception { | ||
final char PACKAGE_SEP = '.'; | final char PACKAGE_SEP = '.'; | ||
| − | final char | + | final char PACKAGE_[[R]]ESOU[[R]]CE_SEP = '/'; |
String packageName = package.getName(); | String packageName = package.getName(); | ||
| − | String | + | String package[[R]]esource |
| − | = packageName.replace(PACKAGE_SEP, | + | = packageName.replace(PACKAGE_SEP, PACKAGE_[[R]]ESOU[[R]]CE_SEP); |
| − | logger.info(" | + | logger.info("[[R]]ESOU[[R]]CE:" + package[[R]]esource); |
ClassLoader loader = ClassLoader.getSystemClassLoader(); | ClassLoader loader = ClassLoader.getSystemClassLoader(); | ||
| − | + | U[[R]]L resource = loader.get[[R]]esource(package[[R]]esource); | |
File f = new File(resource.getPath()); | File f = new File(resource.getPath()); | ||
2020年2月16日 (日) 04:27時点における版
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());
}
}
}
© 2006 矢木浩人