【发布时间】:2011-03-25 23:26:31
【问题描述】:
假设我有一个名为Entity 的基类。在那个类中,我有一个静态方法来检索类名:
class Entity {
public static String getClass() {
return Entity.class.getClass();
}
}
现在我有另一个类扩展它。
class User extends Entity {
}
我想获取用户的类名:
System.out.println(User.getClass());
我的目标是看到“com.packagename.User”输出到控制台,但我最终会得到“com.packagename.Entity”,因为实体类是直接从静态方法引用的。
如果这不是静态方法,则可以通过在 Entity 类中使用 this 关键字轻松解决此问题(即:return this.class.getClass())。但是,我需要这种方法保持静态。关于如何解决这个问题的任何建议?
【问题讨论】:
标签: java class subclass super superclass