J2SE论坛网»J2SE技术»[说难不难的问题]:__FUNCTION__是c++中表示当前函数名的宏,java中又如何 获取当前类和方法 ?
[说难不难的问题]:__FUNCTION__是c++中表示当前函数名的宏,java中又如何 获取当前类和方法 ?
问?:
初学java,从c++中转过来。
在某行代码执行的时候,想知道该行代码所在的类的名字和方法的名字。那位大虾知道如何?
我目前知道在获得一个异常的时候,异常的对象 e 可以用printstacktrace 方法打出堆栈中的对象名和方法名,自然可以得到当前的类名和方法名.在正常情况下呢?
在某行代码执行的时候,想知道该行代码所在的类的名字和方法的名字。那位大虾知道如何?
我目前知道在获得一个异常的时候,异常的对象 e 可以用printstacktrace 方法打出堆栈中的对象名和方法名,自然可以得到当前的类名和方法名.在正常情况下呢?
答!: 1:
利用java的反射机制
答!: 2:
System.out.println(new Throwable().getStackTrace()[0]);
答!: 3:
看反射API
答!: 4:
System.out.println(new Throwable().getStackTrace()[0]);
答!: 5:
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("类名:"+className+"");
System.out.println("属性:");
for(int i=0;i<fields.length;i++)
{
System.out.println(fields[i]);
}
System.out.println("方法:");
for (int i = 0; i < methods.length; i++)
{
System.out.println(methods[i]);
}
}
}
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("类名:"+className+"");
System.out.println("属性:");
for(int i=0;i<fields.length;i++)
{
System.out.println(fields[i]);
}
System.out.println("方法:");
for (int i = 0; i < methods.length; i++)
{
System.out.println(methods[i]);
}
}
}
相关JAVA教程:
String格式的问题
js 怎样获得td里的值?
关于嵌套类
如何覆盖的写文件?
checkbox 提交问题?
能否有-------非堵塞---------socket
大家好,小弟想学习JAVA,但却苦于不知从何学起,望大家给与指点迷精?3Q
关于java术语的中文名称
请问Java能编串口通信程序么?
请帮忙翻译一句话,是java-tutorial中的
新手上路
文本控件与窗体布局的问题