code: public static LinkedHashSet<Class<?>> getClassesInPackages(Set<String> packageNames, boolean recursive) throws ReflectionException {
          Validate.notNull(packageNames);
  
          LinkedHashSet<Class<?>> classes = new LinkedHashSet<>();
          for (String packageName : packageNames) {
              classes.addAll(getClassesInPackage(packageName, recursive));
          }
          return classes;
      }
docs: The same method as
  {@link #getSubclassesInPackage(Class, String, boolean)}, but with the
  possibility to search in multiple packages. Since the result is returned
  as a {@link LinkedHashSet}, there won't be any duplicates.
  
  @param packageNames Set of package names.
  @param recursive <code>true</code> if subpackages should be considered,
  too.
  @return {@link LinkedHashSet} of classes in specified packages.
  @throws ReflectionException