gpt4 book ai didi

java - 有没有办法获取所有实现某个方法的类?

转载 作者:行者123 更新时间:2023-11-29 09:51:12 25 4
gpt4 key购买 nike

标题不言自明。语言是Java。

最佳答案

是的,有。然而,这是一项乏味且昂贵的工作。您需要在 ClassLoader#getResources() 的帮助下爬取所有类文件和所有 JAR 文件和一张照片 java.io.File并在 Class#forName() 的帮助下加载它的所有类最后通过 Class#getMethod() 检查方法是否存在.

然而,有 3rd 方 API 可以从手中接过繁琐的工作,但它仍然很昂贵,因为加载一个类会导致其 static 初始化程序被执行。

更简洁的方法是使用 annotations并注释有问题的方法,然后使用基于注释搜索类/方法/字段的库,例如 Google Reflections .

另一方面,如果事先知道整个包名或 JAR 文件名,那么工作将不那么乏味和昂贵(不需要递归地做事情,也不需要加载整个类路径中的所有类) .

更新:我记得,我曾经写过示例代码来实现类似的东西,你可以找到它here .开始就好了,你只需要稍微改变一下就可以检查方法了。

关于java - 有没有办法获取所有实现某个方法的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1958178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com