class DictionaryProperties {

    private Set<String> enumPackages = new HashSet<>();

    @SneakyThrows
    public List<Class> doScanEnum() {<FILL_FUNCTION_BODY>}
}

        Set<String> packages = new HashSet<>(enumPackages);
        packages.add("org.hswebframework.web");
        CachingMetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory();
        ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
        List<Class> classes = new ArrayList<>();
        for (String enumPackage : packages) {
            String path = "classpath*:" + ClassUtils.convertClassNameToResourcePath(enumPackage) + "/**/*.class";
            Resource[] resources = resourcePatternResolver.getResources(path);
            for (Resource resource : resources) {
                try {
                    MetadataReader reader = metadataReaderFactory.getMetadataReader(resource);
                    String name = reader.getClassMetadata().getClassName();
                    Class<?> clazz = ClassUtils.forName(name,null);
                    if (clazz.isEnum() && EnumDict.class.isAssignableFrom(clazz)) {
                        classes.add(clazz);
                    }
                } catch (Throwable e) {

                }
            }
        }
        metadataReaderFactory.clearCache();
        return classes;
    
<no_super_class>