public class ClassUtil {
public static List<Class> getClasses(String packageName) {
List<Class> classList = new ArrayList<>();
String packageDirName = packageName.replace('.', '/');
try {
URL url = Thread.currentThread().getContextClassLoader()
.getResources(packageDirName).nextElement();
String filePath = URLDecoder.decode(url.getFile(),"utf-8");
File dirFile = new File(filePath);
String[] classFiles = dirFile.list();
for(String f : classFiles){
if(f.endsWith(".class")) {
String fileName = f.substring(0,f.lastIndexOf(".class"));
Class c = Class.forName(packageName+"."+fileName);
classList.add(c);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return classList;
}
}