A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 贾飞雨 中级黑马   /  2012-8-27 01:32  /  1389 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 贾飞雨 于 2012-8-27 01:40 编辑

class  ListDemo
{
                List<String> array = new ArrayList<String>();
               
                array.add("林青霞");
                array.add("齐秦");
                array.add("齐豫");
                array.add("大S");
}
class MainClass
{
        ListDemo ld = new ListDemo();
        Class clszz = ld.getClass();
        //问一下大家,咱们反射怎么得到集合呢,还有集合中的泛型
}

2 个回复

倒序浏览
反射得不到泛型吧,这里的集合是该对象的一个成员,通过反射访问其成员就行了啊
回复 使用道具 举报
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;

class  ListDemo{
List<String> array=new ArrayList<String>();
       
        {
                   array.add("张三");
                   array.add("张四");
                   array.add("张五");
                   array.add("张六");       
        }
                  
}
public class MainClass
{
        public static void main(String[] args) throws Exception, Exception {
                 ListDemo ld = new ListDemo();
                 
               Class clszz = ld.getClass();      
         Field field=clszz.getDeclaredField("array");
          field.setAccessible(true);
          System.out.println(field.getGenericType());
              List list=(List) field.get(ld);
      for(int i=0;i<list.size();i++){
              System.out.println(list.get(i));
      }
               
                

        }
       /*
        *               java.util.List<java.lang.String>
                                     张三
                                     张四
                                     张五
                                     张六
        *
        *
        *
        * */
        
      
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马