列出实现给定接口的包中的所有类

时间:2012-01-04 16:12:46

标签: java class interface implements

我想在我的Java程序中列出/枚举(在运行时)所有实现给定接口的类,并检索类名。可能吗 ?我该怎么办?

2 个答案:

答案 0 :(得分:2)

详细说明如何使用反射:

您可以从Thread.currentThread().getContextClassLoader()开始。 使用包名称作为路径,获取资源:Enumeration<URL> resources = classLoader.getResources(path);

然后你必须从资源中解码文件名,并迭代它们(递归地,因为某些可能是目录)。过滤.class文件的资源,使用Class.forName()实例化类并检查它们实现的接口。

答案 1 :(得分:1)

你应该使用java Reflection

此链接提供了一个教程,涵盖了使用Reflection可以执行的所有操作。您可以从那里开始构建代码