如何让编译器检查类是否实现了静态方法/构造函数

时间:2014-05-06 15:12:30

标签: java class reflection groovy constructor

我有一个Interface IExample和一些实现此接口的类。接下来,我有一个包含其中一些类的列表,如

List<Class> classes = new List();
classes.add(Class1)
classes.add(Class2)
/...

Class1Class2都实现了IExample。稍后在运行时我有一个变量,其中包含classes列表的一个类:Class specialClass = Class2 //Class2 chosen randomly

我现在要做的是创建此specialClass的新实例,如

IExample myNewInstance = specialClass.newInstance(...)

我可以实现所有给定类的构造函数和静态方法(如果有帮助)。但是,我如何强制实现接口IExample的每个类实现特定的构造函数或具有指定签名的静态方法(也将解决此问题)。 因为如果我不能这样做,我必须这样做:

switch(specialClass) {
    case Class1:
         //do some work with constructor of Class1
    case Class2:
         //do some work with constructor of Class2
    //and so on
}

这意味着,在添加新课程时,我不仅需要编写新的ClassX,将其添加到classes列表中,我很好,还需要添加新案例到switch语句。我想避免这种情况。

我该怎么做或者我的问题是否意味着一些普遍的误解?

0 个答案:

没有答案