是否可以聲明存儲在集合中的類型(文字)的變量? 或者這可能更多地是解釋的特性/任務,而不是像Java這樣的編譯語言?聲明存儲在集合中的類型(文字)的變量
例如:
import java.util.*;
class Base {}
class A1 extends Base{}
class A2 extends Base{}
public class Test{
public static void main(String[] args){
ArrayList<Class<? extends Base>> typeArrayList=new ArrayList<Class<? extends Base>>();
typeArrayList.add(A1.class);
typeArrayList.add(A2.class);
typeArrayList.add(A1.class);
typeArrayList.add(A1.class);
//etc. etc.
//now that all the types are nicely stored in a collection,
//could we somehow use them to declare variables of those types?
//e.g. declare something like:
//typeArrayList.get(1) someVariable;
}//main
}//Testlass
謝謝AVolpe,這有助於創建存儲類型的對象。關於原始問題(聲明這些類型的變量) 第一個解決方案聲明Object類型的變量, ,而第二個解決方案需要知道存儲在集合元素中的類型,以便我可以向下轉換爲該類型。 – Pedja
重新閱讀你的問題之後,我認爲你唯一的方法就是使用Reflection來調用方法,編譯器不可能知道'List'的什麼位置。乾杯 –