如何将一堆类添加到ArrayList<MyBaseClass>
然后检索一个类(派生自,但不是MyBaseClass
) 来自ArrayList
并使用它来生成检索到的实际类的新对象(即不是MyBaseClass
因为那是抽象的)
所有需要添加的类都派生自同一个abstract基类(MyBaseClass
)
我真的想不出另一种方法来实现我想做的事情,所以希望这是可能的......?
为了防止使用反射,您可能正在寻找抽象工厂模式 https://en.wikipedia.org/wiki/Abstract_factory_pattern。下面是一个如何使用 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 {
}
也可以看看我应该如何根据用户的选择选择实例化哪个具体实现? https://stackoverflow.com/questions/36272566/how-should-i-select-which-concrete-implementation-should-be-instantiated-based-o
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)