code: private static Set<Class<?>> findEnumClassesWithFile(final String packageName, final Path dir) {
  		Set<Class<?>> classes = new HashSet<>();
  		try (Stream<Path> stream = Files.walk(dir)) {
  			stream.filter(entry -> entry.getFileName().toString().endsWith(".class")).forEach(file -> {
  				StringJoiner joiner = new StringJoiner(".", packageName + ".", "");
  				dir.relativize(file).forEach(p -> joiner.add(p.toString()));
  				String className = joiner.toString().replaceAll(".class$", "");
  				loadEnum(className).ifPresent(classes::add);
  			});
  		} catch (IOException e) {
  			LOG.error(e.getMessage(), e);
  		}
  
  		return classes;
  	}
docs: classファイルから対象パッケージ以下のEnumクラスを取得
  
  @param packageName ルートパッケージ名
  @param dir 対象ディレクトリ
  @return クラスリスト
  @throws ClassNotFoundException エラー
  @throws IOException