Java 在超静态方法中访问子类类型

Java 在超静态方法中访问子类类型,java,android,inheritance,Java,Android,Inheritance,我有两个A类和B类,如下所示: class A{ //Must return children type static Class myStaticMethod(){ return ???????????????? } } class B extends A{ } SignUpActivity.start(this.getApplicationContext()) 我有这个命令: B.myStaticMethod() //Must return B

我有两个A类和B类,如下所示:

class A{
    //Must return children type
    static Class myStaticMethod(){
         return ????????????????
    }
}

class B extends A{
}
SignUpActivity.start(this.getApplicationContext())
我有这个命令:

B.myStaticMethod() //Must return B
我不想在类B中生成任何代码,只想在超静态方法中获取子类型

我不知道这是否可能

编辑:

这就是我想这样做的原因:

我有一个抽象的活动:

abstract public class CPAppCompatActivity extends AppCompatActivity {
    public static void start(Context pContext) {
        Class subclass = ??????
        pContext.startActivity(new Intent(pContext, subclass));
    }
}
public class SignUpActivity extends CPAppCompatActivity {

}
和一项活动:

abstract public class CPAppCompatActivity extends AppCompatActivity {
    public static void start(Context pContext) {
        Class subclass = ??????
        pContext.startActivity(new Intent(pContext, subclass));
    }
}
public class SignUpActivity extends CPAppCompatActivity {

}
我想这样启动我的活动:

class A{
    //Must return children type
    static Class myStaticMethod(){
         return ????????????????
    }
}

class B extends A{
}
SignUpActivity.start(this.getApplicationContext())

事实并非如此。A确实知道并且绝对不应该知道它的子类;因此,在面向对象设计方面,认为a中的静态方法了解Bs是一个非常糟糕的想法。那么,让我们迈出一步:你打算在这里解决什么样的问题?你可以使用反射来解决这个问题,但是,我想问一下,你为什么要这样做?@Bathsheba你会怎么做?反射不能告诉你关于子类的情况,你必须像JVM知道的所有类一样迭代才能找到那些扩展了A的类。正如所说的:对于他没有告诉我们的问题,这似乎是一个非常错误的答案。请参阅我的编辑中的“为什么”,非常感谢你的帮助times@GhostCat:你就是这么做的。但您可以用“jar”来描述,这样至少不必遍历每个类。但实际上,这是一个X-Y问题,不是。A确实知道并且绝对不应该知道它的子类;因此,在面向对象设计方面,认为a中的静态方法了解Bs是一个非常糟糕的想法。那么,让我们迈出一步:你打算在这里解决什么样的问题?你可以使用反射来解决这个问题,但是,我想问一下,你为什么要这样做?@Bathsheba你会怎么做?反射不能告诉你关于子类的情况,你必须像JVM知道的所有类一样迭代才能找到那些扩展了A的类。正如所说的:对于他没有告诉我们的问题,这似乎是一个非常错误的答案。请参阅我的编辑中的“为什么”,非常感谢你的帮助times@GhostCat:你就是这么做的。但您可以用“jar”来描述,这样至少不必遍历每个类。但实际上,这是一个X-Y问题。