トップ 一覧 ping 検索 ヘルプ RSS ログイン

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

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!Java パッケージ配下のクラスを取得する
[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());
         }
     }
 }