Reflection的getCallerClass的使用:可以得到调用者的类.这个方法是很好用的.
0 和小于0 - 返回 Reflection类
1 - 返回自己的类
2 - 返回调用者的类
-
- …层层上传。
例子:
package lee;
import sun.reflect.Reflection;
public class Test
{
public static void main(String[] args)
{
Test2 test=new Test2();
test.g();
}
}
class Test2
{
public void g(){
gg();
}
public void gg(){
System.out.println("-1 : "+Reflection.getCallerClass(-1));
System.out.println("0 : "+Reflection.getCallerClass(0));
System.out.println("1 : "+Reflection.getCallerClass(1));
System.out.println("2 : "+Reflection.getCallerClass(2));
System.out.println("3 : "+Reflection.getCallerClass(3));
System.out.println("4 : "+Reflection.getCallerClass(4));
System.out.println("5 : "+Reflection.getCallerClass(5));
}
}
输出结果:
-1 : class sun.reflect.Reflection
0 : class sun.reflect.Reflection
1 : class lee.Test2
2 : class lee.Test2
3 : class lee.Test
4 : null
5 : null