在java方法中获得当前方法的名称方法:
一、获得当前类名:
Java代码
this.getClass().getName()
二、获得当前方法名臣:
JDK1.4
Java代码
new Exception().getStackTrace()[i].getMethodName()//其中i = 0就是当前的类的方法名字 i == 1就是调用者的方法
JDK1.5之后可用
Java代码
Thread.currentThread().getStackTrace()[1].getMethodName()//具体使用数组的那个元素和JVM的实现有关,我在SUN JDK6下面测试的是第二个元素,具体说明可以查看Thread.getStackTrace方法的javadoc
package testimport java.lang.reflect.Method
public class TTT {
public static void main(String[] args) {
Class c = Test.class
Method[] methods =c.getDeclaredMethods()
for (Method method : methods) {
System.out.print("方法的返回值"+method.getReturnType().getName())
System.out.print(" 方法名:"+method.getName()+"(")
Class[] paraTypes = method.getParameterTypes()
for (Class class1 : paraTypes) {
System.out.print("参数类型:"+class1.getSimpleName()+",")
}
System.out.println(")")
}
}
}
class Test
{
public void say(String word)
{
System.out.println(word)
}
public void say(String word,int n)
{
for(int i=0i<ni++){
System.out.println(word)
}
}
}
===============
方法的返回值void 方法名:say(参数类型:String,)
方法的返回值void 方法名:say(参数类型:String,参数类型:int,)