如何获取方法的调用者类

2023-11-29

我如何知道哪个类调用了某个方法?

class A {
   B b = new B();

   public void methodA() {
    Class callerClass = b.getCallerCalss(); // it should be 'A' class
   } 
}

class B {
 public Class getCallerCalss() {
   //... ???
   return clazz;
 }
}

这很容易完成Thread.currentThread().getStackTrace().

public static void main(String[] args) {
    doSomething();
}

private static void doSomething() {
    System.out.println(getCallerClass());
}

private static Class<?> getCallerClass() {
    final StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
    String clazzName = stackTrace[3].getClassName();
    try {
        return Class.forName(clazzName);
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
        return null;
    }
}

[3]被使用是因为[0]是元素Thread.currentThread(), [1] is for getCallerClass, [2] is for doSomething,最后,[3] is main。如果你把doSomething在另一个类中,您会看到它返回正确的类。

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

如何获取方法的调用者类 的相关文章

  • 通过 SSH 隧道远程访问 MySQL 数据库

    我正在尝试编写 Java 程序来使用 ssh 隧道访问远程 mySQL 数据库 下面是我的代码 int lport 5656 int rport 3306 String rhost 111 222 333 444 String host 1
  • 如何使用 IO Codenameone 发布图片/图像

    因为 codenameone 不能使用外部库 HttpConnection 所以我必须使用 Codenameone 提供的内部库 API 只是我已经设法使用 ConnectionRequest 将数据发布到格式化文本 字符串 我想知道是否有
  • 从 PDF 中提取不可选择的内容

    我正在使用 Apache PDFBox 从 PDF 文件中提取页面 但找不到提取不可选择的内容 文本或图像 的方法 从 PDF 文件中选择内容是没有问题的 请注意 相关 PDF 在复制内容方面没有任何限制 至少从我在文件的 文档限制摘要 中
  • 数组查找时间复杂度和。它是如何存储的

    众所周知 通过索引访问数组的时间复杂度是O 1 Java 的文档ArrayList 它由数组支持 对其也有同样的说法get手术 size isEmpty get set iterator 和 listIterator 操作以恒定时间运行 查
  • 使用SimpleMailMessage类发送邮件时如何使java字符串着色

    我正在使用 java 中的 SimpleMailMessage 类发送邮件 我将 spring 与 hibernate 结合使用 我想在发送邮件时将特定字符串设置为彩色 Code String emailBody Dear username
  • 定制法国号码格式

    我尝试为美国国家 地区使用自定义数字格式 到目前为止效果很好 Not something I want NumberFormat numberFormat0 NumberFormat getNumberInstance Locale US
  • 修复 java 内存泄漏的学习网站

    学习修复 java 内存泄漏的最佳地点是什么 我一直试图在网络上找到好的资源 但令我失望的是 我发现正在讨论玩具示例 我还能够对小型玩具转储进行故障排除 但现实世界的应用程序转储更具挑战性 并且提供的线索很少 我尝试过 Jhat JMap
  • Android 上的 setTimeOut() 相当于什么?

    我需要等效的代码setTimeOut call function milliseconds 对于安卓 setTimeOut call function milliseconds 您可能想查看定时任务 http developer andro
  • lombok - 多个镜头中的 @Builder 模式

    I use Builder of 龙目岛项目 https github com rzwitserloot lombok 所以考虑我有这个例子 Builder public class Client private Getter Setter
  • 用户“root”@“localhost”的访问被拒绝

    我正在尝试从数据库中获取记录 但我面临这个访问被拒绝的问题 我尝试了 Stack Overflow 上提到的其他解决方案 例如向用户授予权限 但没有任何效果 访问数据库的代码 public void service HttpServletR
  • Spring Batch:比较数据库之间的数据

    我有两个数据库 Oracle 和 MySQL 目标是将Oracle表中的值保存到MySQL中 要求 MySQL表中不存在数据 但我在理解 Spring Batch 时遇到了困难 步骤中 它包含itemReader itemProcessor
  • 让 Java 与 Windows 10 Ubuntu 一起使用

    我安装了 Windows 10 周年更新 以便可以在 Windows 上的 Ubuntu 上尝试 Bash 看如何安装 http www howtogeek com 249966 how to install and use the lin
  • 序言中不允许引用

    请帮我找到这个异常的原因 我使用以下罐子 core renderer jar itext paulo 155 jar 第一个文档 xhtml lt xml version 1 0 encoding UTF 8 gt lt DOCTYPE h
  • java3d 中的面部着色

    使用java3d 如何不在每个顶点基础上着色 而是在每个面基础上着色 我尝试学习 java3d 但我生成的 Shape3d 看起来并不符合预期 我想用不同的颜色给不同的三角形着色 但我不知道该怎么做 纹理看起来有点大材小用 而且我根本没有掌
  • 如何在 Eclipse 中使用 Hibernate Tools 生成 DAO?

    我在用着 Eclipse Java EE IDE Web 开发人员 版本 Indigo 发布 使用 hibernate 工具 我对 Eclipse 中的 hibernate 很陌生 所以我学习如何配置 hibernate 并使用注释生成 P
  • GAE - Eclipse 中的开发服务器未更新?

    我在 Eclipse 上使用 Google AppEngine 开发服务器 我的本地网页似乎没有更新 直到我在开发服务器上进行了多次重新启动 使用 Eclipse 中的 运行 或 调试 按钮 我究竟做错了什么 基本流程是 更改 java 文
  • 在java中设置Process对象的安全性

    有人可以告诉我如何限制通过进程对象访问系统属性吗 如果我通过进程对象运行以下代码 我可以抛出安全异常吗 System getProperty user home 请告诉我如何为流程对象配置证券 在ProcessBuilder类文档中 环境方
  • 使用 Java 进行 AES 加密并使用 Javascript 进行解密

    我正在制作一个需要基于 Java 的 AES 加密和基于 JavaScript 的解密的应用程序 我使用以下代码作为基本形式进行加密 public class AESencrp private static final String ALG
  • 在调试模式下,哪些代码更改会自动反映在 Eclipse 中?

    我使用 eclipse 用于编写 调试 作为 IDE 在调试模式下 当我进行一些更改 例如初始化局部变量 时 它们会自动反映 但其他更改例如更改静态变量的值 有时我会收到一条消息 说我需要重新启动虚拟机 有时则不需要 现在的问题是哪些类型的
  • 用于将字符串与通配符模式进行匹配的递归函数

    所以我一整天都在试图解决这个作业 只是无法完成 以下函数接受 2 个字符串 第二个 不是第一个 可能包含 的 星号 An 是字符串的替换 空 1个字符或更多 它可以出现 仅在s2中 一次 两次 更多或根本不出现 它不能与另一个相邻 ab c

随机推荐

  • 更改 VBA 中的小数点分隔符(不仅在 Excel 中)

    在A1单元格中输入 1 10 运行这个宏 Sub ChangeDecimalSeparator Application DecimalSeparator Application UseSystemSeparators False MsgBo
  • 检测到带有 Chrome 驱动程序的 Python Selenium Web 驱动程序

    我假设 Selenium 打开的 chrome 浏览会话与 google chrome 本地安装相同 但是当我尝试在这个网站上搜索时 即使只是用 selenium 打开它并手动控制搜索过程 我也会收到一条错误消息 因为当我在自己的个人资料中
  • 如何说服 python 流对象从 isatty() 返回 true?

    Usually isatty 告诉您流是否是 TTY 并且是确定 stdout 或 stderr 是否是控制台的常用方法 问题是 当您在 IDE 下运行脚本时 输出会被重定向 因此 istty 将返回 False 或者甚至不会被定义 我想将
  • 如何获取 MongoDB 集合中的最低值?

    我有一个名为 Product 的 MongoDB 集合 其中包含以下文档 如下所示 product Milk barcode 12345 price 100 store BestBuy product Milk barcode 12345
  • 调用从电子表格返回自定义类型的 VBA 函数

    我有一个返回自定义数据类型的 vba 函数 定义为 Public Type stockValue stock As String value As Double End Type 我的问题是当我从电子表格单元格调用该函数时如何处理这个问题
  • 使用自写包部署Shiny应用

    我有一个工作闪亮的应用程序 它使用库 珊瑚 其中珊瑚是我自己编写的包 安装在闪亮应用程序的目录中 当我尝试将应用程序部署到shinyapps io 时 我收到以下消息 Error Unable to retrieve package rec
  • 自定义代码合约异常消息

    我有一个代码契约表示为这样 它验证要存储的实体不为空并且对于持久性有效 有用 棒极了 ContractClassFor typeof IRepository lt gt internal abstract class ContractsFo
  • DLL 加载库 - 错误代码 126

    我正在使用 Windows API 中的 LoadLibrary 当我运行该应用程序时 它会抛出错误代码 126 我读到这可能是由依赖项引起的 我检查了某些应用程序 如 Dependency Walker 出了什么问题 但一切都正常很好 在
  • 在所有活动中显示通用音乐播放器

    我正在为一支乐队开发一款应用程序 其中包含多种不同的活动 例如议程 新闻部分 专辑部分等 因为是乐队的作品 所以我想在背景中播放乐队的歌曲 这不是一个问题 但我想在所有活动的底部显示一个小型音乐播放器 以便用户可以随时停止 跳过或重播歌曲
  • 如何使用 StringBuilder 进行多个不区分大小写的替换

    我有一个 大 模板 想要替换多个值 替换需要不区分大小写 还必须能够拥有模板中不存在的键 例如 TestMethod public void ReplaceMultipleWithIgnoreCaseText const string te
  • 添加为 UIWindow 子视图的 UIView 不响应点击

    我添加了一个UIView含有一个UITapGestureRecognizer作为我的关键窗口的子视图 它显示正确 但是当我点击视图时 目标方法不会被触发 我什至尝试用手势识别器替换UIButton 仍然无济于事 这是我的代码 通知视图 h
  • 在基本工作区中查找具有部分字符串匹配的变量(Matlab)

    我想知道如何通过仅输入变量名称的一部分来在基本 MATLAB 工作区中查找变量 我有一长串变量并且我不知道确切的变量名称 是否有一个函数可以比较 匹配变量字符串列表中的字符顺序 Thanks 您可以使用who获取当前工作区中所有变量名称的列
  • 图像视图的放大和缩小问题,拖动最大和最小级别

    我已经实现了具有缩放和拖动功能的图像视图 我正在使用矩阵进行缩放和拖动功能 但我的问题是我无法设置最小和最大缩放级别以及拖动空间限制 任何人都可以告诉我我怎样才能做到这一点 private float spacing MotionEvent
  • 我可以使用 admob 而不在 Playstore 上传吗

    它似乎有效 但我不确定 Playstore 是否会要求我将来通过将应用程序上传到他们的 Playstore 来链接它 谁能确认我是否可以不链接它 谢谢 到 2023 年 如果您的应用未发布到 Google Play 商店或任何其他 Admo
  • 有没有用 C# 编写的 html 语法荧光笔的免费代码? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 有没有用 C 编写的 html 语法荧光笔的免费代码 我正在寻找可以在 net mvc 应用程序中托管的内容 新答案 这些天我只是使用高亮js与 C
  • iOS 上图像中脸部的 2D 变形? (类似于胖布斯等)

    我只是想知道是否有人知道一些好的库或教程 了解如何实现从用户拍摄的图像中拍摄的脸部的 2D 变形 我想实现与 Fatify Oldify 所有那些 Fat Booths 等类似的效果 因为我正在创建一个应用程序 你可以在其中向脸部扔一些东西
  • SSH - 通过 CMD 拒绝权限(无法验证 [电子邮件受保护])

    我用的是Windows XP 当我尝试连接时 我遇到了奇怪的问题 电子邮件受保护 使用bashssh v 电子邮件受保护 我能够成功连接 但是当我尝试在同一台计算机上通过 cmd 连接时 我收到消息权限被拒绝 在调试时我发现在 bash 的
  • 如何自定义 sharepoint 2013 中的 Windows 身份验证弹出窗口?

    和之前一样 我在这里发布问题 如何在 SharePoint 2013 中使用 FBA 基于表单的身份验证 通过 Excel Service 将有效用户名传递给 SSAS 最后我决定使用基于声明的Windows身份验证 因为这种模式将Effe
  • 如何从 Webview 中访问相机?

    在我的 Android 应用程序中 我试图加载一个网页 必须访问相机 WebView 在我的笔记本电脑上 当我加载网页时 我可以访问相机 其他一切都在html显示页面 这是我放入的许可Manifest xml
  • 如何获取方法的调用者类

    我如何知道哪个类调用了某个方法 class A B b new B public void methodA Class callerClass b getCallerCalss it should be A class class B pu