对于 List<User> users = new ArrayList<User>();从 users 能得到它的实际类型吗?(也就是 User.class)

解决方案 »

  1.   

    1.5 没用过,个人理解泛类锁定了这一数据结构中能够存储的数据类型。估计从这种标明泛类的数据类型中提取object不用经过窄化,而直接能转换成泛类所指定的类型。
      

  2.   

    直接User u=users.get(0);得到的不就是User类型
      

  3.   

    User u=users.get(0);
    System.out.println(u.getClass().getName());
      

  4.   

    其实这个和范性没有关系,上面说的调用getClass()或者使用class属性都是可以得到的
    不过得到就是Class对象
    不知道楼主想怎么用.
      

  5.   

    通过user获得List的类型参数是不可能的,因为Java的泛型是一个Gramma Cookie,是由编译器处理的,在object的类型信息中是没有包含类型参数的信息的
      

  6.   

    同意楼上所说的,现在的5.0只是在编译时实现泛型检查,而在运行时期List内的一切都是Object。不过需要注意的是在网络传递List对象时,便会丢失List内的类型信息,如:ObjectInputStream的readObject()方法,或Servlet中的getAttribute()方法等。