[英]Using generics and/or objects of Constructor to return superclass OR subclass
[英]Constructor with list of objects and generics
我有一个这样的构造函数:
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
)
使用静态工厂方法而不是构造函数,并为每个工厂方法指定不同的名称。
另外,使用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
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.