是否可以声明存储在集合中的类型(文字)的变量? 或者这可能更多地是解释的特性/任务,而不是像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'的什么位置。干杯 –