当前位置: 首页 > 面试题库 >

Java:如何获取调用方函数名称

丁和歌
2023-03-14
问题内容

要修复测试用例,我需要确定是否从特定的调用程序函数中调用了该函数。我负担不起添加布尔值参数,因为它会破坏定义的接口。怎么办呢?

这是我想要实现的。在这里,我无法更改operation()的参数,因为它是接口实现。

operation()
{
   if not called from performancetest() method
       do expensive bookkeeping operation
   ...

}

问题答案:

你可以试试

StackTraceElement[] stacktrace = Thread.currentThread().getStackTrace();
StackTraceElement e = stacktrace[2];//maybe this number needs to be corrected
String methodName = e.getMethodName();


 类似资料:
  • 问题内容: 我知道函数,但是我正在寻找一些易于使用的函数实现?如果它也提供了方法的类(如果确实是方法),那将是完美的。 问题答案: 该函数是了解这一点的唯一方法,如果您很懒,这是您自己编写代码的另一个原因。 对抗懒惰! :D

  • 本文向大家介绍Python如何获取函数名称?,包括了Python如何获取函数名称?的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将学习如何在Python中获取函数名称。获得任何函数的名称都是一件简单的事情。对于Python2和Python3,我们有两种不同的方式。让我们看看他们两个。 Python2 Python2中的每个函数都有一个名为func_name的属性,该属性为您提供当前函数

  • 问题内容: 在这件事上,我需要一些帮助, 例: 基本上是这种情况。我的问题是方法如何知道谁在调用它? 编辑:基本上我正在尝试做一个数据库层,并且在我将创建一种将生成SQL语句的方法。通过获取调用的所有属性的值来动态生成此类语句。 问题答案: 最简单的方法如下: 但实际上,除非出于某些日志记录目的,否则不需要这样做,因为这是一项相当昂贵的任务。这是什么,你认为这是解决方案?我们可能会提出更好的建议。

  • 问题内容: 出于跟踪目的,我想打印出当前函数名称,例如gcc中的宏。 这样当我有一个功能 它会自动打印出来或类似的东西。 问题答案: [注意:Go 1.7+建议使用代替; 包运行时是您的朋友在这里:

  • 问题内容: 我觉得我应该知道这一点,但我一直无法弄清楚…… 我想从内部获取一个方法的名称(恰好是一个集成测试),以便它可以打印出一些诊断文本。当然,我可以将方法的名称硬编码在字符串中,但是如果可能的话,我想使测试更加干燥。 问题答案: 涉及通过诸如此类进行内省的答案是合理的。但是根据您的情况,可能还有另一种选择: 如果您的集成测试是使用unittest模块编写的,则可以在TestCase中使用。

  • 问题内容: 我想获取方法的调用者类,即 在方法栏中,我需要获取类名称,然后找到了该方法: 但是,即使是,当我尝试调用它时,Eclipse 也会说: 访问限制:由于必需的库C:\ Program Files \ Java \ jre7 \ lib \ rt.jar的限制,无法访问类型为Reflection的方法getCallerClass() 还有其他选择吗? 问题答案: 你可以生成堆栈跟踪并使用S