public static Collection<Class<?>> getAnnotatedClasses(Class<? extends Annotation> annotationClass, String... packageNames) { List<Class<?>> classes = getClasses(packageNames).stream() .filter(aClass -> aClass.isAnnotationPresent(annotationClass)) .collect(Collectors.toList()); return Collections.unmodifiableCollection(classes); }