import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.net.JarURLConnection;
import java.net.URL;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import org.apache.commons.lang3.StringUtils;
public class ClassUtil {
private static ClassLoader bootstrapClassLoader = null;
/**
* 取得某个接口下所有实现这个接口的类
* @param c
* @return
*/
public static List<Class<?>> getAllClassByInterface(Class<?> c) {
List<Class<?>> returnClassList = null;
if(c.isInterface()) {
String packageName = c.getPackage().getName();
List<Class<?>> allClass = getClasses(packageName);
if(allClass != null) {
returnClassList = new ArrayList<>();
for(Class<?> classes : allClass) {
// 判断是否是同一个接口
if(c.isAssignableFrom(classes)) {
// 本身不加入进去
if(!c.equals(classes)) {
returnClassList.add(classes);
}
}
}
}
}
return returnClassList;
}
/**
* 取得所有的子类
* @param baseClazz
* @para
ClassUtil工具类,唯一功能:取得某个接口下所有实现这个接口的类
最新推荐文章于 2021-05-06 12:35:31 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)