具有对象和泛型列表的构造函数

时间:2015-08-18 19:09:20

标签: java generics collections

我有一个像这样的构造函数:

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(我说的是listlistB

1 个答案:

答案 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
}