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.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return returnClassList;
    }