1 使用guava
ClassPath classPath = ClassPath.from(Application.class.getClassLoader());
ImmutableSet<ClassPath.ClassInfo> clzs=classPath.getTopLevelClasses("package全路徑");
for(ClassPath.ClassInfo info: clzs){
Class clz=info.load();
//處理邏輯
......
}
2 從spring那學的
final String base="package全路徑";
final String folder=base.replace('.','/');
Enumeration<URL> urls=Application.class.getClassLoader().getResources(folder);
while (urls.hasMoreElements()){
File file=new File(urls.nextElement().toURI());
String[] classes=file.list((f,n)->n.endsWith(".class"));
if(classes!=null){
for(String clz :classes){
String fullClz=base+"."+clz.substring(0,clz.length()-6);
Class c=Class.forName(fullClz);
//處理邏輯
.......
}
}
}