gpt4 book ai didi

java - 在Java中,不同类的列表?

转载 作者:行者123 更新时间:2023-12-02 08:21:28 24 4
gpt4 key购买 nike

我有抽象类Subject,然后是Subject1、Subject2等类,它们扩展了Subject。

不要写 if subject==1 then, else if subject==2 then 等等

我想使用某种列表,在输入索引时,会返回一个主题

谢谢

最佳答案

您想按需创建新对象,还是从现有对象中进行选择?

如果是最后一个,请使用 List<Subject>就像 Joshc1107 提议的那样。

如果是第一个,你实际上想要一个工厂:

public interface SubjectFactory {
public Subject create(int type);
}

...或者可能是此类工厂的列表(那么您不需要该类型):

interface SubjectFactory {
public Subject create();
}

List<SubjectFactory> factories = Arrays.asList(
null, // we don't have type 0
new SubjectFactory() { public Subject create() {
return new Subject1();
}},
new SubjectFactory() { public Subject create() {
return new Subject2();
}},
new SubjectFactory() { public Subject create() {
return new Subject3();
}},
new SubjectFactory() { public Subject create() {
return new Subject4();
}});

public Subject create(int type) {
return factories.get(type).create();
}

关于java - 在Java中,不同类的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5385635/

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