2013-12-09 30 views
2

假设我有一组类如下:如何创建一个Class对象列表,所有这些对象都实现了特定的接口?

有一个接口Interface1,并且有两个类Class1和Class2,它们都实现了Interface1。

interface Interface1 { }

class Class1 implements Interface1{ }

class Class2 implements Interface1{}

现在,我想创建一个执行接口1类的列表。我试图做这样的事情:

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

但是,这是行不通的。我得到的编译器错误: Class1.class is of type Class<Class1> and so cannot be added to the list

有没有办法实现我打算做的事情?

回答

5

使用通配符您interface类型界

List<Class<? extends Interface1>> classes = new ArrayList<Class<? extends Interface1>>(); 
classes.add(Class1.class); 
classes.add(Class2.class); 
classes.add(String.class); // won't compile 
相关问题