比如说现在两个类有继承关系, People类中有一个静态方法getClassName(),可以获取到当前的类名。Teacher类继承自People类。现在在Test方法里,调用Teacher.getClassName(),得到的类名却是People的类名,当然这也很好理解为什么,我就是想问问有没有什么办法可以使Teacher.getClassName()得到的是Teacher的类名。只能在People的getClassName()里面改代码,不可以动Teacher这个类。
以下附上简单代码。
Java code
package com.test;
public class People {
public static String getClassName() {
return new Object() {
private String getName() {
String className = getClass().getName();
return className.substring(0, className.indexOf("$"));
}
}.getName();
}
}
Java code
package com.test;
public class Teacher extends People{
}
Java code
import com.test.Teacher;
public class Test {
public static void main(String[] args) throws Exception {
System.out.println(Teacher.getClassName());
}
}
|
|