在Java 8中以静态方式获取类名[重复]

2024-04-12

这是后续更一般和类似的问题/答案 https://stackoverflow.com/questions/1696551/how-to-get-the-name-of-the-calling-class-in-java

In Java 8我可以使用调用该方法的类名新异常 https://github.com/apache/jmeter/blob/master/src/jorphan/src/main/java/org/apache/jorphan/logging/LoggingManager.java

String className = new Exception().getStackTrace()[1].getClassName();

但是我可以以静态方式获取类名吗?

edit

如果我在不同类的方法中并且想知道调用我的方法的类


从另一个类以静态方式获取调用类的类名的示例:

public class Main {
    public static void main(String[] args) {
        example();
    }

    public static void example() {
        B b = new B();
        b.methodB();
    }
}

class B {
    public void methodB(){
        System.out.println("I am methodB");
        StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
        StackTraceElement element = stackTrace[2];
        System.out.println("I was called by a method named: " + element.getMethodName());
        System.out.println("That method is in class: " + element.getClassName());
    }
}

以静态方式获取完全限定类名的示例:

MyClass.class.getName();

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

在Java 8中以静态方式获取类名[重复] 的相关文章

随机推荐

  • ios 8 解析推送中没有声音[重复]

    这个问题在这里已经有答案了 这很奇怪 更新我的应用程序以支持通过 Parse 使用 Parse 仪表板 发送的 iOS 8 推送通知后 推送通知不会发出任何声音 我在 Stackoverflow 上发现了这个重复项 但发布的答案对我不起作用
  • 解析 JSON 到 MySQL 表

    我正在使用 Zend Framework 1 12 我想创建一个基于 JSON 文件的表 我已经创建了表及其字段 现在它们都是长文本 它所要做的就是将它们插入到正确的列中 我遵循了这些例子 http www daniweb com web
  • 代表和活动之间有什么区别?

    代表和活动之间有什么区别 两者不都包含对可以执行的函数的引用吗 An Event声明增加了一层抽象和保护delegate实例 此保护可防止委托的客户端重置委托及其调用列表 并且仅允许在调用列表中添加或删除目标
  • WCF 中未返回 DateTime.Kind

    当处理DateTime具有 WCF 的对象 返回DateTime对象丢失了Kind财产 永远是DateTimeKind Unspecified即使我在退货之前手动更改它 我在 WCF 端这样做了 dateFrom DateTime Spec
  • 根据用户 ID 限制下拉选项

    我问这个问题是因为我不确定解决问题的最佳方法 问题 我有一个预先填充的下拉列表 其中包含 1 000 个左右的数字 我需要根据使用下拉列表的用户来限制下拉列表中显示的数字 我想到的解决方案 使用 jQuery 隐藏所有数字 使用 jQuer
  • Firebase:如何检查电子邮件是否在运行时经过验证

    所以流程将是这样的 用户通过 firebase 使用电子邮件和密码登录 如果电子邮件经过验证 他们将转到主要活动 否则他们将进入验证电子邮件活动 我想做的是 当他们处于验证电子邮件活动时 我将在 onCreate 方法中发送验证电子邮件 然
  • 有没有办法用#define 代替长命名空间?

    假设我有一个很长的命名空间 我不想一直输入它 但我不想使用using namespace 任何一个 我可以为此使用 define 吗 Example define glm quat glm gtc quaternion class Came
  • Javascript 网络摄像头捕获并使用 PHP 上传到服务器

    我有一个页面 使用 javascript 和 PHP 上传文件成功上传图像表单画布 第二页已成功将网络摄像头捕获到画布并正确显示 我正在尝试使用摄像头捕获实时CSS对象来调整图像上传脚本 但什么也不做 html是 折断 div div cl
  • Laravel Passport tokensExpireIn 似乎不起作用

    我正在使用 Laravel 5 4 Passport 来创建 SPA 应用程序 但是 我能够使身份验证工作 但访问令牌始终是短期令牌 过期时间为 600 秒 我无法通过以下方式增加过期时间 Passport tokensExpireIn C
  • 如何在 pandas groupby 直方图中显示标签名称

    我可以使用 pandas 在单个图中绘制多个直方图 但缺少一些东西 如何给出标签 我只能绘制一个图形 如何将其更改为layout 3 1 或其他内容 另外 在图1中 所有的垃圾箱都填充了纯色 很难知道哪个是哪个 那么如何用不同的标记 例如十
  • 有没有有效的方法来禁用 HTML 表单中的自动完成功能?

    当使用xhtml1 transitional dtddoctype 使用以下 HTML 收集信用卡号
  • Play2 如何从服务层而不是动作层管理事务?

    我正在使用 Play2 1 1 Java 和 JPA2 0 以及 hibernate 实现 通过代码控制事务而不是像下面那样使用 transactional 是正常的 JPA 代码风格 有没有办法在 Play 上像下面这样工作 或者如何使用
  • 在 p5js 中将画布导出为 GIF/PNG

    I use 原子编辑器 我要实现20 秒 GIF用我的画布 saveFrames 有一个限制 我猜 即使我输入 它也可以将 png 文件保存为短 gif 3 5 秒 saveFrames aa png 15 22 我发现了 CCapture
  • 如何组织大型代码文件?

    我越来越意识到 任何单个文件中的代码通常可以很容易地跨越数百行 尽管我知道实现可能是合理的 但它仍然感觉混乱和无组织 我知道在某些情况下需要大量代码 但是组织所有代码的最佳方法是什么 我考虑过将变量与方法分开 privates from p
  • Dart 中的函数类型定义/函数类型别名是什么?

    我已经阅读了描述 我明白它是一个函数类型别名 typedef 或函数类型别名为函数类型提供一个名称 您可以在声明字段和返回类型时使用该名称 当将函数类型分配给变量时 typedef 会保留类型信息 http www dartlang org
  • 如何知道两个线程中哪个线程首先完成执行

    我有两个线程 A 和 B 如果 A 先完成 那么我必须执行 function1 否则如果 B 先完成 我需要执行 function 2 我如何知道两个线程中哪一个先完成执行 您可以使用以下内容 仅当先前的值为空时才会设置该内容 即使只有一个
  • 未收到 ACTION_MY_PACKAGE_REPLACED

    我正在使用 ACTION MY PACKAGE REPLACED 来接收我的应用程序更新或重新安装的信息 我的问题是该事件永远不会被触发 我尝试了 Eclipse 和真实设备 这就是我所做的 显现
  • Python:将原始字符串转换为字节字符串而不添加转义字符

    我有一个字符串 BZh91AY SYA xaf x82 r x00 x00 x01 x01 x80 x02 xc0 x02 x00 x00 x9ah3M x07 lt xc9 x14 xe1BA x06 xbe x084 而且我要 b BZ
  • Android EditText 具有固定的最大行数且无滚动

    我想创建一个文本输入 1 始终显示3行 2 不允许用户输入超过 3 行可用空间的文本 3 如果用户输入的文本超过 3 行 则不可滚动 从技术上讲 我允许用户输入最多 500 个字符以保存到数据库 但我并不期望输入的文本量接近这个数量 因此
  • 在Java 8中以静态方式获取类名[重复]

    这个问题在这里已经有答案了 这是后续更一般和类似的问题 答案 https stackoverflow com questions 1696551 how to get the name of the calling class in jav