在超类中获取子类的名称

15 浏览
0 Comments

在超类中获取子类的名称

假设我有一个名为Entity的基类。在这个类中,我有一个静态方法来获取类名:

class Entity {
    public static String getClass() {
        return Entity.class.getClass();
    }
}

现在我有另一个类继承自它。

class User extends Entity {
}

我想获取User类的类名:

System.out.println(User.getClass());

我的目标是在控制台上输出"com.packagename.User",但实际上我会得到"com.packagename.Entity",因为Entity类在静态方法中被直接引用。

如果这不是一个静态方法,可以通过在Entity类中使用this关键字来轻松解决这个问题(即: return this.class.getClass())。然而,我需要这个方法保持静态。有什么建议吗?

0