guolin 2013年01月06日
Java静态方法问题,也许无解,求高人看看有没有思路
比如说现在两个类有继承关系, 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());
}
}
...全文
1123 点赞 收藏 42
写回复
42 条回复

还没有回复,快来抢沙发~

发动态
发帖子
Java SE
创建于2007-09-28

3.4w+

社区成员

30.7w+

社区内容

Java 2 Standard Edition
社区公告
暂无公告