Java:从静态方法获取继承类的类

ser*_*laz 11 java inheritance

我在Java中有以下问题:我有一个基类和一个派生类,我在基类中有一个方法.当我通过Derived调用Base的foo方法时,我希望得到Derived的类.如果可以这样做,foo方法可以是通用的.

class Base
{
    static void foo()
    {
        // I want to get Derived class here
        // Derived.class
    }
}

class Derived extends Base
{
}

Derived.foo();
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

大卫

par*_*fal 4

这不是静态方法的工作方式。您必须实现Derived.foo(),执行任何特殊的操作Derived,然后该方法调用Base.foo()。如果您确实需要类型信息,您可以创建Base.foo0(Class klass).

但老实说,任何需要知道调用它的类的类型的静态方法都应该是实例方法。