如何将Class作为方法参数传递?

时间:2014-11-24 16:38:49

标签: java class introspection

我有以下类层次结构:

超类和子类:

public class SuperClass(){

// attributes and accessors


public class Class1() extends SuperClass {

// attributes and accessors
}

public class Class2() extends SuperClass {

// attributes and accessors
}

public class Class3() extends SuperClass {

// attributes and accessors
}

我在其他类中也有一个方法来创建子类:

SuperClass createMySubclass(){

}

我想知道我如何传递这个方法参数我要创建的类并创建他的实例?我不知道怎么做:

我想做点什么:

    SuperClass createMySubclass(Class myClass){

      SuperClass type = new myClass.getConstructor();

    }

有可能吗?

1 个答案:

答案 0 :(得分:0)

根据你的场景,因为每个类都来自SuperClass,你可以使用SuperClass作为参数的方法,它可以接收任何子类。

示例:

   SuperClass createMySubclass(SuperClass myClass){

      SuperClass type = myClass;

    }

在你的主要地方,你应该有这样的东西:

Class1 mySubClass = new Class1();
SuperClass mySuperClass = new SuperClass();
mySuperClass.createMySubClass(mySubClass);