有没有办法获取Java中当前正在执行的方法的名称?
从技术上讲这将起作用…
String name = new Object(){}.getClass().getEnclosingMethod().getName();
但是,将在编译时创建一个新的匿名内部类(例如YourClass$1.class
)。因此,这将为.class每个部署此技巧的方法创建一个文件。另外,在运行时每次调用时都会创建一个其他未使用的对象实例。因此,这可能是可以接受的调试技巧,但确实会带来大量开销。
该技巧的一个优点是getEncosingMethod()
返回java.lang.reflect.Method
值可用于检索方法的所有其他信息,包括注释和参数名称。这样就可以区分具有相同名称的特定方法(方法重载)。
请注意,根据JavaDoc
的getEnclosingMethod()
技巧,不应SecurityException
使用相同的类加载器来加载内部类。因此,即使存在安全管理器,也无需检查访问条件。
必须getEnclosingConstructor()
用于构造函数。在(命名的)方法之外的块中,getEnclosingMethod()
返回null
。
问题内容: 我要做的就是获取当前的类名,并且java在类名的末尾附加了一个无用的废话 $ 1 。如何摆脱它,只返回实际的类名? 问题答案: “ $ 1”不是“无用的废话”。如果您的班级是匿名的,则会附加一个数字。 如果您不想要类本身,而是想要其声明类,则可以使用。例如: 您可以使用一些静态实用程序方法来移动它。 但是请注意,这不是当前的类名。匿名类与其封闭类是不同的类。内部类的情况与此类似。
本文向大家介绍laravel 获取当前url的别名方法,包括了laravel 获取当前url的别名方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上路由为例 在模版中可以使用route('xiong.test')来获取该路由的真实地址。 在XiongTestController@index中,可以使用以下方法获取路由别名 输出结果为: 或者使用getName()方法直接获取别名 或者用
本文向大家介绍nodejs取得当前执行路径的方法,包括了nodejs取得当前执行路径的方法的使用技巧和注意事项,需要的朋友参考一下 process.cwd() 当前执行程序的路径(执行命令行时候的路径,不是代码路径 例如 在根目录下执行 node ./xxx/xxx/a.js 则 cwd 返回的是 根目录地址 ) __dirname: 代码存放的位置 process.execPath: 当前执行的
问题内容: 在JUnit 3中,我可以这样获得当前正在运行的测试的名称: 它将显示“当前测试是testSomething”。 在JUnit 4中,有什么现成的或简单的方法可以做到这一点吗? 背景:显然,我不想只打印测试的名称。我要加载存储在与测试名称相同的资源中的特定于测试的数据。您知道,约定优于配置以及所有其他内容。 问题答案: JUnit 4.7似乎使用TestName-Rule添加了此功能。
本文向大家介绍python获取当前运行函数名称的方法实例代码,包括了python获取当前运行函数名称的方法实例代码的使用技巧和注意事项,需要的朋友参考一下 python获取当前运行函数名称的方法实例代码 摘要: c/c++中获取函数所在源码名,函数名和行号的方法很简单 __FILE__,__FUNCTION__和__LINE__ python没有这种语法,但也可以通过某种方法得到,这里给出例子,使
在Powershell中,我使用命令Register ScheduledJob-ScriptBlock{…}创建了一个ScheduledJob。此ScheduledJob执行脚本块。如何从ScriptBlock检索当前运行的ScheduledJob的名称? 例如。 Windows任务计划程序中的任务正在运行以下命令: powershell.exe-NoLogo-NonInteractive-Win