gpt4 book ai didi

java - 获取当前执行方法的名称

转载 作者:bug小助手 更新时间:2023-10-28 01:35:35 26 4
gpt4 key购买 nike

有没有办法在 Java 中获取当前正在执行的方法的名称?

最佳答案

从技术上讲,这会起作用...

String name = new Object(){}.getClass().getEnclosingMethod().getName();

但是,在编译期间将创建一个新的匿名内部类(例如 YourClass$1.class)。因此,这将为部署此技巧的每个方法创建一个 .class 文件。此外,在运行时每次调用时都会创建一个未使用的对象实例。所以这可能是一个可以接受的调试技巧,但它确实会带来很大的开销。

此技巧的一个优点是 getEnclosureMethod() 返回 java.lang.reflect.Method 可用于检索该方法的所有其他信息,包括注释和参数名称。这样就可以区分同名的特定方法(方法重载)。

请注意,根据 getEnclosureMethod() 的 JavaDoc,此技巧不应抛出 SecurityException,因为应使用相同的类加载器加载内部类。因此,即使有安全管理员,也无需检查访问条件。

请注意:构造函数需要使用getEnclosureConstructor()。在(命名的)方法之外的 block 期间,getEnclosureMethod() 返回 null

关于java - 获取当前执行方法的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/442747/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com