2011-04-10 61 views
19

我有多個類(B,C和D),它們是類A的子類。我需要創建一個包含B,C和D的List/Array,並根據我從中提取的任何元素創建對象列表/數組。在AS3我會做這樣的事情:var classes:Array = [MovieClip,Sprite,Shape];或類的向量。Java中的類列表

如何在Java中執行此操作? 現在我想是這樣的權利:

List<Class<? extends A>> list = new ArrayList<Class<? extends A>>(); 

list.add(B); 
+0

就這樣@Rob,但使用'B.class'而不只是'B' – CarlosZ 2011-04-10 17:07:18

回答

29
List<Class<? extends A>> classes = new ArrayList<Class<? extends A>>(); 
classes.add(B.class); 
classes.add(C.class); 
classes.add(D.class); 
+0

現在我明白了,我不得不使用B.class,而不是B. – 2011-04-10 17:10:00

+0

我可以問一下如何創建一個List元素的對象? – 2011-04-10 17:31:24

+4

如果類有一個0參數(稱爲標準)構造函數,那麼可以調用'aClass.newInstance()',否則必須使用'getConstructors'方法之一。結帳http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Class.html – CarlosZ 2011-04-10 17:34:19

3

你都可以做這些的類似物。由於CarlosZ pointed out,有List及其各種實現方式,也可以創建一個數組:

Class[] classes = new Class[] { 
    MovieClip.class, Sprite.class, Shape.class 
}; 
+0

或者使用'Arrays。 asList(MovieClip.class,Sprite.class,Shape.class);'作爲一個替代方案 – justderb 2015-04-27 23:11:31