有没有办法实现一个函数,这个函数的功能是打印被调用类的类名

比如:
[code="java"]
public class A{
public static String getCallClassName(){
//得到被调用类的名字
}
public class B{
public void printName(){
String name = A.getCallClassName()
//得到名字 B
}
}
[/code]
:evil:

使用 Reflection类可实现
[code="java"]
package test3;

import sun.reflect.Reflection;

/**

  • @author yeyong */ public class A { public static String getCallClassName() { return Reflection.getCallerClass(2).getName(); } } [/code]

[code="java"]
/**

  • @author yeyong */ public class B { public void printName() { String name = A.getCallClassName(); System.out.println(name); } } [/code]

测试类
[code="java"]
package test3;

/**

  • @author yeyong */ public class Test { public static void main(String[] args) { new B().printName(); } } [/code]

[code="java"]
// 输出结果是

test3.B

[/code]