假设我有一个名为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类是直接从静态方法引用的。
如果这不是一种静态方法,可以通过在Entity
类中使用this
关键字(即:return this.class.getClass()
)轻松解决。但是,我需要这种方法保持静态。有关如何解决这个问题的任何建议?
感谢澄清,我想我不知道如何静态方法编译。这有助于解决问题,我将不得不寻找替代解决方案。 – 2010-08-05 19:04:47
+1,完全正确。整个问题源于对静态方法工作原理的误解。 – 2010-08-05 19:28:59