当前位置: 首页 > 面试题库 >

查找源代码文件是否实现接口的快速可靠方法

唐昊焜
2023-03-14
问题内容

给定一个Java源代码文件,找出它是否实现给定接口的快速可靠方法是什么?

一种可靠的方法是将文件解析为语法树(例如使用Eclipse的ASTNode类)并寻找正确的节点。

一种快速的方法是查找带有“实现”的行,将那些在注释中的行踢掉,并将接口与适当的import语句相关联。我可能在这里错过了一些奇怪的其他情况。

你会怎么做?


问题答案:

我要说的是,解析源代码文件既快速又可靠。但是,我想,“快速”是一个模糊的概念,它的确取决于。不过,与扫描源文件中是否出现“实现”一词相比,我不会期望有太多开销。因此-
如果后者对您来说很好,我想前者也应该可以接受吗?

的。javax.tools *
API将是一个很好的介入点上手; 但是,那里也有许多用于Java的(开源)源代码解析器。

另外,这是Oracle网站上的介绍性博客文章。



 类似资料:
  • 问题内容: 是否有Apple框架捆绑包来检测是否存在互联网连接?当前,当我的应用程序尝试在没有互联网连接的情况下对用户的位置进行地理位置定位时会崩溃。 我对Swift和ios编程有些陌生-抱歉。 问题答案: 这不是一个完善的网络检查库,但是我发现了这种简单的方法来检查网络可用性。我设法将其翻译为Swift,并在这里完成了最终代码。 它适用于3G和WiFi连接。我还通过一个工作示例将其上传到了我的G

  • 问题内容: 我尝试使用Java ServiceLoader查找实现特定接口的所有类,如下所示: 不幸的是,当我在调试模式下运行Eclipse时,ServiceLoader找不到任何类。我觉得我错过了一个琐碎的事情… 问题答案: 无法做到。 为了将类公开为可以被发现的服务,您需要将其名称放入提供程序配置文件中,如使用Java平台创建可扩展应用程序中所述 。 没有内置的方法可以找到实现特定接口的所有类

  • 我在TypeScript中使用一个接口来定义一个函数,该函数仅在扩展基类的一些类上可用。这是我到目前为止的代码的简化版本: 现在,问题是我会添加更多的“行走”动物,这样移动动物的功能就会变得太大而无法控制。我想做的事情是这样的: 但是,“implements”检查不起作用,在使用接口时,我找不到与“instanceof”等效的。在Java中,“instanceof”的使用似乎可以在这里使用,但Ty

  • 问题内容: 因为我不想自己做,所以我正在寻找Java的良好FFT实现。首先,我在这里使用了FFT Princeton的 这个,但是它使用了对象,而我的探查器告诉我,由于这个事实,它的速度并不是很快。所以我再次搜索了一下,发现了一个:更快的FFT Columbia 。也许你们中的一个知道另一种FFT实现?我想拥有“最好的”应用程序,因为我的应用程序必须处理大量的声音数据,并且用户不喜欢等待… ;-)

  • 本文向大家介绍php快速查找数据库中恶意代码的方法,包括了php快速查找数据库中恶意代码的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php快速查找数据库中恶意代码的方法。分享给大家供大家参考。具体如下: 数据库被输入恶意代码,为了保证你的数据库的安全,你必须得小心去清理。有了下面一个超级方便的功能,即可快速清除数据库恶意代码。 希望本文所述对大家的php程序设计有所帮助。

  • 问题内容: 我已经读过“ EffectiveGo”和其他类似的问答:golang接口符合性编译类型检查,但是我仍然无法正确理解如何使用此技术。 请参见示例: 如果实现了接口,是否有任何简单的方法(例如,不使用反射)检查值? 问题答案: 如果您不知道值的类型,则只需检查值是否实现了接口。如果类型已知,则该检查由编译器自动完成。 如果您仍然想进行检查,则可以使用您提供的第二种方法进行检查: 在编译时会