<dependency> <groupId>org.reflections</groupId> <artifactId>reflections</artifactId> <version>0.9.12</version> </dependency> public interface Extension { void performAction(); } public class ExtensionImpl1 implements Extension { @Override public void performAction() { } } public class ExtensionImpl2 implements Extension { @Override public void performAction() { } } import org.reflections.Reflections; import java.util.Set; public class ExtensionRegistry { private static Set<Class<? extends Extension>> extensionClasses; static { extensionClasses = reflections.getSubTypesOf(Extension.class); } public static Set<Class<? extends Extension>> getExtensionClasses() { return extensionClasses; } } public class Main { public static void main(String[] args) { Set<Class<? extends Extension>> extensionClasses = ExtensionRegistry.getExtensionClasses(); for (Class<? extends Extension> extensionClass : extensionClasses) { try { Extension extension = extensionClass.getDeclaredConstructor().newInstance(); extension.performAction(); } catch (Exception e) { e.printStackTrace(); } } } }


上一篇:
下一篇:
切换中文