给定一个java源代码文件,有什么快速可靠的方法来查明它是否实现了给定的接口?
一种可靠的方法是将文件解析为语法树(使用例如 Eclipse 的 ASTNode 类)并查找正确的节点。
一种快速的方法是查找带有“implements”的行,剔除注释中的行,并将接口与适当的导入语句相关联。我可能在这里遗漏了一些奇怪的其他案例。
你会怎么办?
你会怎么办?
我将编译类和接口的源代码,使用Class.forName()
,并使用Class.isAssignableFrom
测试该类是否是接口的子类型。
相对较快,完全可靠......假设源代码是可编译的。
请注意,这一切都可以在运行时完成,如果您使用正确实现的自定义类加载器的一次性实例来进行加载,则可以避免可疑类污染您的 JVM。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)