如何获取包含函数的名称[重复]
Posted
技术标签:
【中文标题】如何获取包含函数的名称[重复]【英文标题】:How to get the name of the containing function [duplicate] 【发布时间】:2014-02-23 22:04:18 【问题描述】:在 C++ 中,您可以使用 __FUNCTION_NAME__
来获取包含 __FUNCTION_NAME__
的函数的名称。
Java 中是否有等价物? 可以,在 Java 中,可以使用 this
和反射来做一些事情。还有更简单的吗?
【问题讨论】:
你试过 Thread.currentThread().getStackTrace()[1].getMethodName() 吗? @Alessio:如果有点贵,那就太好了:还有一个候选人作为答案。 @Alessio 这并不总是有效。见***.com/questions/442747/… 你说得对,我在一个项目中使用过,不知道可能不行 【参考方案1】:Thread.currentThread().getStackTrace() 通常会包含您从中调用它的方法,但存在缺陷
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/StackTraceElement.html
【讨论】:
【参考方案2】:Thread.currentThread().getStackTrace()[ste.length - 1 - depth].getMethodName();
depth = 0(零)将给出当前方法
还有
System.out.println((new Throwable()).getStackTrace()[0].toString());
样本输出:
com.junk.Junk3.main(Junk3.java:12)
【讨论】:
以上是关于如何获取包含函数的名称[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何从 pg_catalog.pg_proc 获取 Postgres 函数名称以及函数特定名称?
php函数以获取数据,将具有通用字段名称的多个表连接起来并显示输出[重复]