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

2024-03-20

给定一个java源代码文件,有什么快速可靠的方法来查明它是否实现了给定的接口?

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

一种快速的方法是查找带有“implements”的行,剔除注释中的行,并将接口与适当的导入语句相关联。我可能在这里遗漏了一些奇怪的其他案例。

你会怎么办?


你会怎么办?

我将编译类和接口的源代码,使用Class.forName(),并使用Class.isAssignableFrom测试该类是否是接口的子类型。

相对较快,完全可靠......假设源代码是​​可编译的。

请注意,这一切都可以在运行时完成,如果您使用正确实现的自定义类加载器的一次性实例来进行加载,则可以避免可疑类污染您的 JVM。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

快速可靠地查明源代码文件是否实现接口的方法 的相关文章

  • 将jquery日期选择器集成到jsf中

    我正在关注这些例子here http jqueryui com demos datepicker icon trigger and here http jqueryui com demos datepicker icon trigger但我
  • 如何在 Spring MVC 中使用延迟加载

    Spring MVC中如何使用延迟加载 我现在正在使用 eager 但这会使我的应用程序运行速度变慢 这是我的域的一部分 ManyToMany fetch FetchType EAGER JoinTable name NEWS TAG jo
  • App Engine 日志中的 /_ah/queue/__deferred__

    我有一个使用 Google Cloud SQL 的 App Engine 应用程序 并且从我的应用程序的页面中我正在执行一些数据库操作 每当访问此页面时 它都无法执行所有数据库操作 当我进入控制台时 我看到的只是 ah queue defe
  • 如何使 Java 中的自定义泛型类型链表排序?

    我正在用 java 编写自己的泛型链表 而不是使用 java 集合链表 链表的add方法由以下代码组成 public void add T item int position Node
  • 如何在生产环境中运行 spring boot 可执行 jar?

    Spring Boot 的首选部署方法是通过内部包含 tomcat 的可执行 jar 文件 它是从一个简单的开始java jar myapp jar 现在 我想将该 jar 部署到 EC2 上的 Linux 服务器上 我是否遗漏了某些内容
  • Apache Poi 无法读取工作表名称

    我们在通过 Apache Poi 读取 Excel 工作表时遇到了一个奇怪的错误 我们使用的是5 0版本 该代码以前可以工作 但现在已停止在我们所有的生产环境中工作 它在本地测试时仍然有效 因此事实证明这很难调试 问题是我们返回了空工作表名
  • 为什么图很大时x轴消失了

    我正在尝试使用加载大图JFreeChart 但是 当缓冲图像超过一定大小时 X 轴会出现问题 这些值在 X 轴上消失 这可以在图像的第三张图中看到 I would appreciate any help in fixing the prob
  • Hibernate - 一对多关系和孤儿删除级联

    我有一个基本的一对多关系父 子关系 就像 Hibernate 参考书第 21 章中一样 级联仅从子级到父级 保留级联只是因为我不想在删除子级时删除父级 当我向父级添加一个子级并保存该子级时 出现 TransientObjectExcepti
  • 在 IntelliJ IDEA 中哪里添加像 -ea 这样的编译器选项?

    我想添加 ea选项 我把它设置在Project Settings gt Compiler gt Java Compiler Additional command line parameters 但它导致了 make 错误 invalid f
  • Parsec-Parser 工作正常,但是可以做得更好吗?

    我尝试这样做 解析以下形式的文本 一些文本 0 0 0 一些文本 0 0 0 0 0 0 更多文本 0 0 0 进入一些数据结构的列表 内部 一些文本 外部 0 0 0 内部 一些文本 外部 0 0 0 外部 0 0 0 内部 更多文本 外
  • 使用 google app-engine 跨浏览器/服务器重新启动会话持久性

    如何使会话在浏览器 服务器重新启动后持续存在 我正在使用谷歌应用程序引擎 每次重新启动浏览器和 或服务器时 我都会得到一个新的会话 ID String jSessionId this getThreadLocalRequest getSes
  • Clojure/Java:用于声音频谱分析的 Java 库? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以接受大量音频数据并返回给定频带内随时间变化的平均幅度的库 我已经在 comp dsp
  • java 对字母数字字符串进行排序

    我有这个数组存储用户添加的一些 URL 的后缀 U2 U3 U1 U5 U8 U4 U7 U6 当我这样做时 for Map
  • 如何使用 jasper 从 jsp 生成 pdf 格式的报告

    在我的应用程序中 我可以连接到数据库并获取数组结果集 并使用 JSP 代码迭代该数组并使用 HTML 在网页中显示报告 我希望 HTML 网页中生成的报告可以以 PDF 格式导出并保存在某个 pdf 文件中 请告诉我如何实现这样的技术来实现
  • ZipInputStream.getNextEntry() 如何工作?

    假设我们有这样的代码 File file new File zip1 zip ZipInputStream zis new ZipInputStream new FileInputStream file 假设您有一个包含以下内容的 zip
  • 在idea ide中出现钻石运算符的编译错误

    我在尝试在idea ide中编译一些简单的源代码时收到此错误 java diamond operator is not supported in source 1 6 use source 7 or higher to enable dia
  • Primefaces 中的过滤数据表仅有效一次

    我正在尝试使用 Primefaces 过滤数据表 就像这个例子 http www primefaces org showcase ui datatableFiltering jsf 在网络浏览器中 我输入要过滤的文本 它会工作一次 但是当我
  • 逐列读取 CSV 文件

    我想从多列 csv 文件中读取特定列 并使用 Java 在其他 csv 文件中打印这些列 有什么帮助吗 以下是我逐行打印每个标记的代码 但我希望只打印多列 csv 中的几列 import java io BufferedReader imp
  • Android 每个 Activity 中的通用进度条

    我已经修改了解决方案 我可以获得进度条 但进度条永远不会隐藏 这是创建具有相对布局的进度条的类 public class ProgressBarHandler private ProgressBar mProgressBar private
  • Spring Data JPA 中使用 @Query 进行动态查询?

    我在 Spring Boot 应用程序中使用规范 可以通过不同的过滤器选项过滤结果 但是 我需要使用特殊的过滤器 Query在我的存储库方法中 据我所知 我无法在此查询中构建动态 WHERE 子句 还有 QueryDSL 和 Criteri

随机推荐

  • 钩子中的 React 类组件的 this.props.history.push('/some_route') 相当于什么?

    我正在努力实现这个目标 import isAuthorized from somewhere async componentDidMount const authorized await isAuthorized if authorized
  • 正则表达式模式与 ruby​​ on Rails 的形式

    使用 form for 时是否支持模式属性 我正在尝试组合正则表达式模式以确保电话号码的格式正确 我的问题是模式属性不会仅采用正则表达式字符串 doesnt work 因此 当我将正则表达式写为字符串时 它会导致问题 例如必须转
  • 通过 Bash 传递命令行参数

    在温习 bash 时 已经有一段时间了 我惊讶地发现执行这段代码 另存为 script sh echo Arg 0 to script sh 0 echo Arg 1 to script sh 1 function echo args ec
  • 远程注册

    我知道关于远程注册表访问已经讨论过几次 但我找不到任何关于如何实现这一点的好例子 我确实找到了http www codeproject com KB cs cpimpersonation1 aspx http www codeproject
  • 如何拦截Hibernate生成的SQL?

    对于一个像老大哥一样工作的安全系统 比如受监视的强制访问控制 我们必须拦截并处理 hibernate 生成的所有 select 语句 我们将用户 时间戳和 sql 选择存储在数据库中 以便使用其他工具进行一些分析 这些信息可以确定用户试图查
  • SignalR WebRTC WebSocket 已处于 CLOSING 或 CLOSED 状态

    我想测试运行 SignalR 和 WebRTC 的最简单实现 我将代码托管在https github com foyzulkarim WebRtc https github com foyzulkarim WebRtc 我制作了两个不同的文
  • 在 AngularJS 中集成 jQuery 插件的正确方法

    我想知道将 jQuery 插件集成到我的 Angular 应用程序中的正确方法是什么 我找到了几个教程和截屏视频 但它们似乎适合特定的插件 例如 http amitgharat wordpress com 2013 02 03 an app
  • 优化 iPhone / iPod touch 上的二进制应用程序大小

    我知道用户只能通过 3G 下载最多 20MB 而我的构建 发布 iphoneos 显示我的应用程序为 26MB 我正在链接到 Three20 iPhone 框架 这是提交到 App Store 时计入 20MB 最大值的最终大小吗 我能做些
  • Angular 2 中的条件验证

    Angular 2 中的验证非常简单 这非常棒 然而 如果选择了其他字段 如何将必填字段设置为可选字段 这是我的规则 this contractsFilter this fb group selectedContractType Valid
  • 如何从url中提取域名?

    如何使用 bash 从 url 中提取域名 喜欢 http example com http example com 到 example com 必须适用于任何 TLD 而不仅仅是 com 您可以使用简单的AWK方式提取域名 如下所示 ec
  • 如何将整数放入数字数组[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想将像 123456 这样的数字放入数字数组中 您能给我一个关于该过程的提示吗 我可以定义一个元素数量未知的数组吗 首先计算数字的个数
  • UWP 应用程序 WebView 泄漏内存,无法清除图像

    Problem WebView 加载图像后不释放内存 如果所有 WebView 实例都被销毁几秒钟 内存似乎会被释放 我们从 XAML 树中删除并清除了代码中的所有引用 我们在调试器中检查了当时所有实例都已释放 这个解决方案是有问题的 因为
  • 变量重定义,嵌入式c

    我正在开发一个嵌入式 c 项目 并且遇到全局变量重新定义的问题 我已将函数声明和定义分成几个 h 和 c 文件 其中许多函数需要访问全局变量 这些变量在 global vars h 中定义 因此 在头文件的开头 ifndef define
  • 在 C++11 中从 C++17 重新实现 std::map::try_emplace() ?

    std map try emplace http en cppreference com w cpp container map try emplace看起来非常方便和高效 但它仅在 C 17 中可用 是否可以在 C 11 中重新实现它 t
  • webpack-dev-server 断开连接并尝试重新连接...垃圾邮件

    我刚刚完成了我正在做的一个有角度的项目 但是我 注意到控制台中的某些内容 如果是的话我很想隐藏它 可能只是为了保持一切整洁 这是 webpack dev server 模块不断断开连接并尝试重新连接 并向我的控制台日志发送垃圾邮件 像这样
  • 使用“自定义用户模型”删除“webhook”错误(Django)

    我正在尝试配置 Django Stripe 订阅 现在尝试设置 webhook 以通过以下代码创建新的客户数据 views py import stripe from django conf import settings from dja
  • 如何使用 php cURL 下载文件并将其保存到本地路径

    我有一个网址如下 www domain com file asp File peoples csv 在浏览器中点击此 URL 时会强制下载文件 但我想使用 CURL 在本地路径上下载此文件 有什么办法吗 谢谢帮助 好的 找到解决方案了 分享
  • VIM 恢复上次搜索模式

    我重新映射 and 查找文件中的上一个和下一个模式 映射如下 nmap section
  • 获取多个元素的引用

    我有一堆动态创建的输入字段 tr td td tr
  • 快速可靠地查明源代码文件是否实现接口的方法

    给定一个java源代码文件 有什么快速可靠的方法来查明它是否实现了给定的接口 一种可靠的方法是将文件解析为语法树 使用例如 Eclipse 的 ASTNode 类 并查找正确的节点 一种快速的方法是查找带有 implements 的行 剔除