我定义了多个class,如多个class实例为class1, class2, class3, class4,我要把这些实例放到一个ArrayList里面,由于class1, class2, class3, class4属于不同的类型,所以我只能使用ArrayList <Object> list = new ArrayList <Object >()来定义这个ArrayList。以后我要提取其中的元素来操作,如Object a = list.get(3);但是我不知道a属于什么class,所以又要想办法获得这个Class的名称,如知道它是属于class2,所以使用class2 b = (class2)a强制转换类型。这样的操作很麻烦,有没有其他好办法处理这类事情?
if(a instanceof class1){
class1 cl1 = (class1)a;
}else if(a instanceof class2){
....................
}else if(a instanceof class3){
....................
}
instanceof代表与具体类型绑定,是代码的坏味道!