2013-12-09 27 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 
相關問題