我有一个像这样的构造函数:
public SomeObject(int len, float f, ArrayList<CustomObjectA> list) {
// code for constructor
this.list = list;
}
我想添加另一个这样的构造函数:
public SomeObject(int len, float f, ArrayList<CustomObjectB> listB) {
// code for constructor
this.listB = listB;
}
我不能,因为我得到了我能理解的删除错误
解决这个问题的最佳方法是什么?
我不想让它ArrayList<Object>
参数,我宁愿将2个单独的列表对象作为成员变量而不是1(我说的是list
和listB
)
答案 0 :(得分:2)
使用静态工厂方法而不是构造函数,并为每个工厂方法指定一个不同的名称。
另外,使用List而不是ArrayList。
private List<CustomObjectA> listOfAs;
private List<CustomObjectB> listOfBs;
private SomeObject(int len, float f, List<CustomObjectA> listOfAs, List<CustomObjectA> listOfBs) {
// ...
}
public static SomeObject createFromAs(int len, float f, List<CustomObjectA> list) {
// construct the SomeObject; return it
}
public static SomeObject createFromBs(int len, float f, List<CustomObjectB> list) {
// construct the SomeObject; return it
}