我有抽象类主题,然后是主题1,主题2等类,它们扩展了主题。
如果主题== 1则不写,否则如果主题== 2则等等
我想使用某种列表,在输入索引时,会给我一个主题
感谢
答案 0 :(得分:2)
您想要按需创建新对象,还是从现有对象中选择?
如果是最后一个,请使用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();
}
答案 1 :(得分:0)
称为地图,表,哈希表,字典,关联数组。
答案 2 :(得分:0)
您可以使用定义为here的ArrayList<Subject>
。这是我个人经常访问的内容,它允许您使用get(int index)
命令按索引获取项目。