如何从 Thread.currentThread().getStackTrace() 获取方法签名(而不是方法名称)?

2024-01-12

假设我有以下方法及其调用:

public static void main(String[] args) {zoo();}
public static void zoo() {zoo(0);}
public static void zoo(int i) {too(i);}
public static void too(int i) {...}

Thread.currentThread().getStackTrace()会返回给我类似的东西:

A.too(A.java:56)
A.zoo(A.java:65)
A.zoo(A.java:60)
A.main(A.java:80)

通过这个输出,我无法区分 2zoo我在我的示例中定义了一个没有任何参数的(zoo())和一个带有整数参数(zoo(int i))。原因是因为只输出方法名称而不是其签名。有没有办法获得一堆方法签名?


的文档堆栈跟踪元素 https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/StackTraceElement.html#toString()Java 13 中清楚地表明没有办法做到这一点。你可以通过人脑通过行号来识别重载方法。如果可能的话,自动化此任务将是矫枉过正(需要使用hard反射),尽管我并不认为某些库可以做到这一点。

备注:.class 文件实际上是二进制文件格式有方法签名信息 https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html(至少是参数列表),因此这并不是不可能,只是到目前为止还没有人开发它。

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

如何从 Thread.currentThread().getStackTrace() 获取方法签名(而不是方法名称)? 的相关文章

  • 在 Java 中连接和使用 Cassandra

    我已经阅读了一些关于 Cassandra 是什么以及它可以做什么的教程 但我的问题是如何在 Java 中与 Cassandra 交互 教程会很好 如果可能的话 有人可以告诉我是否应该使用 Thrift 还是 Hector 哪一个更好以及为什
  • Java Swing:从 JOptionPane 获取文本值

    我想创建一个用于 POS 系统的新窗口 用户输入的是客户拥有的金额 并且窗口必须显示兑换金额 我是新来的JOptionPane功能 我一直在使用JAVAFX并且它是不同的 这是我的代码 public static void main Str
  • Java中反射是如何实现的?

    Java 7 语言规范很早就指出 本规范没有详细描述反射 我只是想知道 反射在Java中是如何实现的 我不是问它是如何使用的 我知道可能没有我正在寻找的具体答案 但任何信息将不胜感激 我在 Stackoverflow 上发现了这个 关于 C
  • 给定两个 SSH2 密钥,我如何检查它们是否属于 Java 中的同一密钥对?

    我正在尝试找到一种方法来验证两个 SSH2 密钥 一个私有密钥和一个公共密钥 是否属于同一密钥对 我用过JSch http www jcraft com jsch 用于加载和解析私钥 更新 可以显示如何从私钥 SSH2 RSA 重新生成公钥
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 制作一个交互式Windows服务

    我希望我的 Java 应用程序成为交互式 Windows 服务 用户登录时具有 GUI 的 Windows 服务 我搜索了这个 我发现这样做的方法是有两个程序 第一个是服务 第二个是 GUI 程序并使它们进行通信 服务将从 GUI 程序获取
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • Spark 1.3.1 上的 Apache Phoenix(4.3.1 和 4.4.0-HBase-0.98)ClassNotFoundException

    我正在尝试通过 Spark 连接到 Phoenix 并且在通过 JDBC 驱动程序打开连接时不断收到以下异常 为简洁起见 下面是完整的堆栈跟踪 Caused by java lang ClassNotFoundException org a
  • 反射找不到对象子类型

    我试图通过使用反射来获取包中的所有类 当我使用具体类的代码 本例中为 A 时 它可以工作并打印子类信息 B 扩展 A 因此它打印 B 信息 但是当我将它与对象类一起使用时 它不起作用 我该如何修复它 这段代码的工作原理 Reflection
  • 操作错误不会显示在 JSP 上

    我尝试在 Action 类中添加操作错误并将其打印在 JSP 页面上 当发生异常时 它将进入 catch 块并在控制台中打印 插入异常时出错 请联系管理员 在 catch 块中 我添加了它addActionError 我尝试在jsp页面中打
  • Spring Data JPA 应用排序、分页以及 where 子句

    我目前正在使用 Spring JPA 并利用此处所述的排序和分页 如何通过Spring data JPA通过排序和可分页查询数据 https stackoverflow com questions 10527124 how to query
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • PHP 接口有属性吗?

    PHP 中的接口有属性 还是只有方法 您可以在 DocBlock 中为接口声明属性 然后 IDE 将提示接口的这些属性 PhpStorm 会这样做 但这不会强制在实现类中实际实现这些字段 例如 property string passwor
  • 为什么HashMap不能保证map的顺序随着时间的推移保持不变

    我在这里阅读有关 Hashmap 和 Hashtable 之间的区别 http javarevisited blogspot sg 2010 10 difference Between hashmap and html http javar
  • Java Integer CompareTo() - 为什么使用比较与减法?

    我发现java lang Integer实施compareTo方法如下 public int compareTo Integer anotherInteger int thisVal this value int anotherVal an
  • 仅将 char[] 的一部分复制到 String 中

    我有一个数组 char ch 我的问题如下 如何将 ch 2 到 ch 7 的值合并到字符串中 我想在不循环 char 数组的情况下实现这一点 有什么建议么 感谢您花时间回答我的问题 Use new String value offset
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • JGit 检查分支是否已签出

    我正在使用 JGit 开发一个项目 我设法删除了一个分支 但我还想检查该分支是否已签出 我发现了一个变量CheckoutCommand但它是私有的 private boolean isCheckoutIndex return startCo

随机推荐

  • 防病毒误判c#.net程序为木马

    我使用 C Net 开发了一个 Windows 服务 它收集数据并在客户端用户许可的情况下使用自定义 API 定期发送到我的服务器 在用户安装防病毒软件 卡巴斯基 之前 它一直工作正常 它误报地将我的 exe 检测为PDM trojan w
  • flutter getx 中对 null 值使用的 Null 检查运算符

    我的代码给出了Null check operator used on a null value错误 尽管我在代码中找不到任何空值 我不知道哪个屏幕实际上导致了错误 但肯定是这两个屏幕中的一个 启动画面 import dart async i
  • 用于 Tesseract 和 OpenCV 的 CMake

    我是 Linux 编程新手 我正在尝试创建一个 OCR 应用程序Ubuntu 12 10 using 超立方体 http code google com p tesseract ocr E2 80 8E and OpenCV http ww
  • 删除通过绑定添加的事件侦听器

    在 JavaScript 中 删除使用 bind 添加为事件侦听器的函数的最佳方法是什么 Example function constructor MyClass function this myButton document getEle
  • 远程调试时pdb如何定位(VS 2008)

    当调试器附加到远程服务器上的进程时 在哪些位置搜索 pdb 按什么顺序 例如 是在远程服务器 调试者 还是本地客户端 调试器 上搜索 当我使用调试器从特定位置手动加载 pdb 文件时 调试器是在本地查找文件还是远程调试器监视器在查找文件 有
  • Jersey:打印实际请求

    如何查看 Jersey 生成并发送到服务器的实际请求 我遇到了特定请求的问题 运行网络服务器的人要求查看完整的请求 带有标头等 如果您只是使用 Jersey Client API 日志过滤器 https jersey java net no
  • 仅当满足特定条件时才选择最后一条记录

    我有一个表 其中包含 ID WorkerID IsActive 标志 1 或 0 和 LocalTime 每次工作人员处于活动或不活动状态时 都会创建一条记录 其中包含 WorkerID 1 或 0 标志记录以及时间 LocalTime 我
  • 如何使用 java.util.Optional 生成 JaxB 类?

    我使用 jaxb2 maven plugin 从给定的 XSD 生成 JaxB Class 效果很好 但现在我想在生成的类中使用 java util Optional 但 JaxB 生成的类没有可选值 所以我被迫对每个变量进行空检查 有人知
  • boost::condition_variable - 将 wait_for 与谓词一起使用

    我想等待某个条件一段时间 我阅读了 boost 文档 似乎最好使用该函数wait for带有谓词 如所描述的here http www boost org doc libs 1 53 0 doc html thread synchroniz
  • coq 中的依赖模式匹配

    以下代码 当然不是完整的证明 尝试对依赖产品进行模式匹配 Record fail Set mkFail i nat f forall x x lt i gt nat Definition failomat forall m nat f fo
  • JQuery 1.8 Datatables 通过单击按钮保存状态

    我有一个 jsp 其中有一个表和两个按钮 home 和 back 并在其中导入了 jquery datatable js 单击 主页 时 应该加载页面 而不保存任何分页或过滤器 单击 返回 后 表格应该保存所有过滤器和分页 我尝试在初始化数
  • 如何设计具有复杂初始化的不可变对象

    我正在学习 DDD 并发现 值对象 应该是不可变的 我理解这意味着对象状态在创建后不应更改 这对我来说是一种新的思维方式 但在很多情况下都是有意义的 好的 所以我开始创建不可变的值对象 我确保他们将整个状态作为构造函数的参数 我不添加属性设
  • Angular 4:无法读取未定义的属性“http”

    我有一个带有确认框的 AlertService 我从我的服务中调用它 如果用户点击 是 那么我想调用 REST 服务 但我收到此错误 我相信因为我是从alertService confirm 内部调用的 并且alertService没有声明
  • 如何将具有多个源子目录的 Make 和 Autotools 项目迁移到 CMake?

    我目前正在使用递归 make 和自动工具 并希望迁移到 CMake 以获得如下所示的项目 lx project root src lx c contains main method conf c util str c str h etc c
  • D3D12 使用后缓冲表面作为无序访问视图(无人机)

    我正在为一个学校项目制作一个简单的光线跟踪器 计算着色器应该用于对三角形或其他一些图元进行着色 为此 我想直接在计算着色器中写入后台缓冲区表面 然后立即呈现结果 我确信这在 DX11 中是可能的 尽管我似乎无法让它在 DX12 中工作 我无
  • 我可以使用 OpenGL 进行离屏渲染吗? [复制]

    这个问题在这里已经有答案了 我想尝试制作一个简单的程序 它采用 3D 模型并将其渲染为图像 有什么方法可以使用 OpenGL 渲染图像并将其放入保存图像而不是显示图像的变量中吗 我不想看到我正在渲染的内容 我只想保存它 有什么办法可以用 O
  • 无法重定向到下一页

    我使用的是 Win XP 操作系统和 XAMPP 我使用 eclipse 作为编辑器 在 Eclipes 中 我无法重定向下一页 所以现在我已经安装了 Zend 开发环境 现在我也遇到了同样的问题 我的代码是 主页 php
  • 使用 api 获取 Google 云端硬盘视频嵌入代码

    大家好 我正在开发一个项目 我需要在网页上专门显示来自我的谷歌驱动器的视频 我不想手动选择视频并复制其嵌入代码 有没有办法我们可以使用 google api 首选 PHP 获取视频的嵌入代码 这样我就可以在 iframe 中使用此代码并显示
  • 如何限制 XSLT 1.0 中的字符串字数?

    如何限制 XSLT 1 0 中字符串的字数 怎么样
  • 如何从 Thread.currentThread().getStackTrace() 获取方法签名(而不是方法名称)?

    假设我有以下方法及其调用 public static void main String args zoo public static void zoo zoo 0 public static void zoo int i too i pub