日期:2014-05-20  浏览次数:20578 次

LinkedList的使用问题
使用LinkedList存放了一些对象,比如说有:

Class Receive{}
Class Reply{}
Receive receive = new Receive();
Reply reply = new Reply();

LinkedList lst = new LinkedList();
lst.add(receive);
lst.add(reply);

现在我要取出lst中的内容,但是我并不知道里面存放的内容的具体类型,即不知道第一个元素第二个元素分别为Receive类和Reply类实例。但是我需要提取出lst中的内容,针对每个元素获取里面包含的数据。例如,在Receive中有属性int d;receive实例对其赋值,那么我需要在lst中获取到这个值。
应该如何处理???
谢谢!!!

------解决方案--------------------
object
+
instanceof

网上查一下,例子很多的
------解决方案--------------------
如1楼所说:
Object obj = lst.get(i);
if (obj instanceof Receive) {
...
} else if (obj instanceof Reply) {
...
}


另一种是直接尝试利用反射来获取
Object obj = lst.get(i);
Class clz = obj.getClass();
Field field = clz.getField("id");
Object id = field.get(obj);
System.out.println(id);
------解决方案--------------------
用泛型可以解决这样的问题,,
------解决方案--------------------
探讨
如1楼所说:
Object obj = lst.get(i);
if (obj instanceof Receive) {
...
} else if (obj instanceof Reply) {
...
}


另一种是直接尝试利用反射来获取
Object obj = lst.get(i);
Class clz = obj.getClass();
Field ……