如何创建类的ArrayList?

2024-01-04

如何将一堆类添加到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(使用前将#替换为@)

如何创建类的ArrayList? 的相关文章

随机推荐