Java类和成员对象类型

时间:2012-12-09 17:45:42

标签: java

我对以下内容有些疑惑:

class Foo{
private ArrayList<Obj1> obj1List;
private ArrayList<Obj2> obj2List;


/* constructor */
...

public void push(?){

if(the object is of type Obj1)
    push into obj1List (object)
if(the object is of type Obj2)
    push into obj2List (object)

}

如何使用Push函数做这样的事情,它会识别对象类型本身,而不使用instanceof(强制转换)或使用(Object obj)作为其参数?我需要知道要推进哪个arraylist!

2 个答案:

答案 0 :(得分:4)

最简单的方法是有两个重载:

public void push(Obj1 obj) {
  objList1.add(obj);
}

public void push(Obj2 obj) {
  objList2.add(obj);
}

答案 1 :(得分:1)

您可以简单地使用两种方法,每种对象类型一种,并且您的程序将自动使用最具体的方法:

public void push(Obj1 obj){
    obj1List.add(obj);
}

public void push(Obj2 obj){
    obj2List.add(obj);
}