本帖最后由 今生2013 于 2014-5-21 21:54 编辑
class GenericDemo
{
public static void main(String[] args)
{
ArrayList al = new ArrayList();
al.add("abc01");
al.add("abc0991");
al.add("abc014");
al.add(4); //al.add(new Integer(4));
System.out.println(al.get(0).getClass());
System.out.println(al.get(3).getClass());
Iterator<String> it = al.iterator();
while(it.hasNext())
{
String s =(String)it.next();
System.out.println(s+":"+s.length());
}
}
}
个人认为:ArrayList类里的add()方接受的是Object类型,对象添加进去的时候被转化成Object类型,那为什么调用getClass方法显示的类型还是原来的?
Student stu = new Student();
System.out.println(stu.getClass());
Person per = stu;
System.out.println(per.getClass());
再则我把对象类型转换后调用getClass方法显示的类型也还是原来的?求解
问题:
1.存储在ArrayList的对象是原有类型,还是Object类型?
2.为什么调用getClass方法显示的类型还是原来的?
|