工作中使用泛型的一个问题

编辑器加载中...

View Code
 1 // 把對象添加到集合中
2 public Object addObjectInList(Object o, String src, String dst) {
3 if (o instanceof Map) {// 当对象是一个Map对象
4 Map map = (Map) o;
5 Object[] key = map.keySet().toArray();
6 Object[] val = map.values().toArray();
7 Map m = new HashMap();
8 for (int i = 0; i < key.length; i++) {
9 Object keyM = addObjectInList(key[i], src, dst); // 递归入口
10 Object valueM = addObjectInList(val[i], src, dst); // 递归入口
11 m.put(keyM, valueM);
12 }
13 return m;
14 } else if (o instanceof Iterator) {// 当对象是一个Iterator对象
15 Iterator it = (Iterator) o;
16 List l = new ArrayList();
17 while (it.hasNext()) {
18 Object ob = addObjectInList(it.next(), src, dst); // 递归入口
19 l.add(ob);
20 }
21 } else if (o instanceof Collection) {// 当对象是一个Collection对象
22 Object ob = addObjectInList(((Collection) o).iterator(), src, dst);// 递归入口
23 return ob;
24 } else {// 当对象是一个基本对象
25 cols.add(o.toString());
26 o = o.toString().replace(src, dst);
27 System.out.println(o.toString());
28 }
29 return o;
30 }

有如上代码 ,开始我用的是 o.getClass().getSuperclass(); 然后有   if("Map".equal(name)){//do something} 但是如果   o  本身就就是继承 几个Map的子类

那么就有可能会进不了If 从而实现不了功能,所以推荐使用 instanceof


 

posted @ 2012-03-20 09:53  嘎空间  阅读(126)  评论(0编辑  收藏  举报