我如何才能向中添加一堆类ArrayList<MyBaseClass>,然后再从中检索一个类(派生自,但不是MyBaseClass),ArrayList并使用它来生成实际检索到的类的新对象(即,MyBaseClass因为那不是抽象的)
ArrayList<MyBaseClass>
MyBaseClass
ArrayList
所有需要添加的类都源自同一个 抽象 基类(MyBaseClass)
我真的想不出另一种方法来实现自己的目标,所以希望这是可能的…?
为了防止使用反射,您可能正在寻找抽象工厂模式。这是一个简单的示例,说明如何使用Java 8实现它:
private void run() { List<Supplier<MyBaseClass>> factories = Arrays .asList(Impl1::new, Impl2::new, Impl3::new); List<MyBaseClass> baseClassInstances = factories.stream() .map(Supplier::get) .collect(Collectors.toList()); } public abstract class MyBaseClass { } public class Impl1 extends MyBaseClass { } public class Impl2 extends MyBaseClass { } public class Impl3 extends MyBaseClass { }