Java静态方法问题,也许无解,求高人看看有没有思路

来源:互联网 发布:淘宝卖家如何备注订单 编辑:程序博客网 时间:2024/06/08 08:15
比如说现在两个类有继承关系, People类中有一个静态方法getClassName(),可以获取到当前的类名。Teacher类继承自People类。现在在Test方法里,调用Teacher.getClassName(),得到的类名却是People的类名,当然这也很好理解为什么,我就是想问问有没有什么办法可以使Teacher.getClassName()得到的是Teacher的类名。只能在People的getClassName()里面改代码,不可以动Teacher这个类。

以下附上简单代码。




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();
}


}









package com.test;


public class Teacher extends People{
}









import com.test.Teacher;


public class Test {
public static void main(String[] args) throws Exception {
System.out.println(Teacher.getClassName());
}
}


0 0