gpt4 book ai didi

Java,类类型列表

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:54:22 26 4
gpt4 key购买 nike

我正在开发 Java 应用程序。这是一个抽象类 Model 和 2 个派生类 Model 1 和 Model 2。Model1 和 Model2 的行为不同,所以我想让用户从两者中选择一个模型。它可以像这样实现:

Model model;
If(response==1){
model = new Model1();
}else if(response==2){
model = new Model2();
}

现在的问题是,如果我添加一个新类 Model3,我必须重写代码。我可以创建一个列表,在其中添加每个类的一个实例,然后添加一个静态方法,该方法将返回该类的一个新实例,但我希望它可以用更多的风格来完成。

是否可以创建一个列表来保存每个类的类型。从这个列表中,我可以创建一个菜单来选择模型,然后使用该类型创建用户需要的类。

那么是否有可能创建一个 List<Class> ,然后使用 Class 对象作为构造函数,创建给定类的实例?

最佳答案

您可以创建 suppliers 的列表:

static final List<Supplier<Model>> MODEL_MAKERS = ImmutableList.of(
new Supplier<Model>() { public Model get() { return new Model1(); } },
new Supplier<Model>() { public Model get() { return new Model2(); } },
new Supplier<Model>() { public Model get() { return new Model3(); } }
);

你可以随意使用反射,但这需要跳出 Java 的正常异常处理机制,需要零参数 public 构造函数和限制代码更改方式的 public 类以未被 javac 检查的方式进行维护,在这种情况下是没有必要的。

关于Java,类类型列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9447106/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com