请参阅Class.newInstance()。
例如:
List<Class> blockArray = new ArrayList<Class>();
blockArray.add(LTetrino.class);
// then instantiate an object of the class that was just added
LTetrino block = blockArray.get(0).newInstance();
如果您的类构造函数带有参数,您可以使用 Class 的 getConstructor() 方法来检索适当的构造函数,然后调用它(它在上面的文档中链接),例如(假设 LTetrino 是一个静态/顶级类并且它的构造函数接受两个 int 参数):
Class<? extends LTetrino> cls = blockArray.get(0);
// get constructor
Constructor<? extends LTetrino> ctor = cls.getConstructor(int.class, int.class);
// instantiate by invoking constructor
LTetrino block = ctor.newInstance(x, y);
顺便说一句,我建议不要对 Class 使用泛型类型:
List<Class<? extends LTetrino>> blockArray = new ArrayList<Class<? extends LTetrino>>();
blockArray.add(LTetrino.class);
或至少:
List<Class<?>> blockArray = new ArrayList<Class<?>>();
blockArray.add(LTetrino.class);