栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

查找实现特定接口的所有类

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

查找实现特定接口的所有类

我有一个类似的需求,我想确保所创建的实现某个接口的所有类始终可真正序列化。我创建了一个JavaClassFinder,它遍历了类路径中的所有目录,并找到了可分配给我关心的接口的所有类。这是一个代码片段:

public <T> List<Class<? extends T>> findAllMatchingTypes(Class<T> toFind) {    foundClasses = new ArrayList<Class<?>>();    List<Class<? extends T>> returnedClasses = new ArrayList<Class<? extends T>>();    this.toFind = toFind;    walkClassPath();    for (Class<?> clazz : foundClasses) {        returnedClasses.add((Class<? extends T>) clazz);    }    return returnedClasses;}

如果有帮助,我很高兴与您分享代码。唯一的缺点是,这只会处理.class文件-
我没有添加功能来解压缩.jars并从那里读取类文件。(但是添加它并不是一个大项目。)

更新:
我检查了上面的源代码,发现它取决于我们标准实用程序库中的许多帮助程序类。为了简化操作,我压缩了所有需要的代码,您可以从JavaClassFinder.zip下载这些代码。这将直接在Eclipse中进行设置,您可以获取所需代码的任何部分。

您将在项目中找到一个名为JavaClassFinderTest.java的JUnit3测试,该测试向您显示JavaClassFinder类的功能和用法。运行Junit测试所需的唯一外部依赖项是Junit。

该实用程序的基本用法:

    JavaClassFinder classFinder = new JavaClassFinder();    List<Class<? extends MyTagInterface>> classes = classFinder.findAllMatchingTypes(MyTagInterface.class);

这将为您提供一个列表,其中包含可从“ MyTagInterface.class”分配的类路径中的所有类(例如)。希望这可以帮助。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/496584.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号