当前页面: 开发资料首页 → J2SE 专题 → [说难不难的问题]:__FUNCTION__是c++中表示当前函数名的宏,java中又如何 获取当前类和方法 ?
[说难不难的问题]:__FUNCTION__是c++中表示当前函数名的宏,java中又如何 获取当前类和方法 ?
摘要: [说难不难的问题]:__FUNCTION__是c++中表示当前函数名的宏,java中又如何 获取当前类和方法 ?
初学java,从c++中转过来。
在某行代码执行的时候,想知道该行代码所在的类的名字和方法的名字。那位大虾知道如何?
我目前知道在获得一个异常的时候,异常的对象 e 可以用printstacktrace 方法打出堆栈中的对象名和方法名,自然可以得到当前的类名和方法名.在正常情况下呢?
利用java的反射机制
System.out.println(new Throwable().getStackTrace()[0]);
看反射API
System.out.println(new Throwable().getStackTrace()[0]);
package shuffle;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
public class T7
{
/**
* @param args
*/
public static void main(String[] args)
{
ArrayList list=new ArrayList();
Class cls=list.getClass();
String className=cls.getName();
Field[] fields=cls.getDeclaredFields();
Method[] methods=cls.getMethods();
System.out.println(-#34;类名:-#34;+className+-#34;-#34;);
System.out.println(-#34;属性:-#34;);
for(int i=0;i-#60;fields.length;i++)
{
System.out.println(fields[i]);
}
System.out.println(-#34;方法:-#34;);
for (int i = 0; i -#60; methods.length; i++)
{
System.out.println(methods[i]);
}
}
}
反射