/** * @param classloader * @param superClass * @param classes * @param className */ @SuppressWarnings("unchecked") private static void checkAndAddClass( ClassLoader classloader, Class superClass, LinkedList<Class> classes, String className) { if (className.indexOf('$') > -1) return; try { Class subClass = classloader.loadClass(className); if (subClass != null && !superClass.equals(subClass) && superClass.isAssignableFrom(subClass) && !subClass.isInterface() && !classes.contains(subClass)) { classes.add(subClass); } } catch (Throwable th) { logger.log(Level.WARNING, "checkAndAddClass error", th); } }