工具类如下:
public class ClassUtils {
//给一个接口,返回这个接口的所有实现类
public static List<Class> getAllClassByInterface(Class c) {
List<Class> returnClassList = new ArrayList<Class>();
// 返回结果
// 如果不是一个接口,则不做处理
if (c.isInterface()) {
String packageName = c.getPackage().getName();
// 获得当前的包名
try {
List<Class> allClass = getClasses(packageName);
// 获得当前包下以 及子包下的所有类
// 判断是否是同一个接口
for (int i = 0; i < allClass.size(); i++) {
if (c.isAssignableFrom(allClass.get(i))) {
// 判断是不是一个接口
if (!c.equals(allClass.get(i))) {
// 本身不加进去
returnClassList.add(allClass.get(i));
}
}
}
} catch (ClassNotFoundException e) {
e.