http://blog.csdn.net/snihcel/article/details/7270502看看这个

解决方案 »

  1.   

    参照我这里最简单的列子自己写就行了:http://blog.csdn.net/withiter/article/details/8859399
      

  2.   


    麻烦看我代码: public void reflectObjToMap(List<Object[]> list){

    for(Object[] object:list){
    for(Object obj:object){
    Field[] fields = obj.getClass().getDeclaredFields();
    for (Field field : fields) {

    System.out.println(field.getName());

    }
    }

    }
      

  3.   


    我是使用的hibenate的一个SQL查询,返回的List<obj[]>,返回的结果不对呀~
      

  4.   

    hibernate返回的这个List<Object[]>这个object[]里面的元素并不一定就都是实体类的对象,如果楼主的sql查询的不是一个实体类的对象,而是得到一些字段的集合的话这个object[]里面装的就有可能是那些查询出来的字段的数组.这样的话就会变成[int,String,boolean,...]等等数据数组.
    如果楼主确实查询的是一个实体类对象的话也不要用什么反射了,直接用commons-beanUtils工具类public List<Map> reflectObjToMap(List<Object[]> list){
        List<Map> list=new ArrayList<Map>(); 
        for(Object[] object:list){
            for(Object obj:object){
                Map map=BeanUtils.describe(obj);
                list.add(map);
            }
        }
        return list;    
    }
      

  5.   


    麻烦看我代码: public void reflectObjToMap(List<Object[]> list){

    for(Object[] object:list){
    for(Object obj:object){
    Field[] fields = obj.getClass().getDeclaredFields();
    for (Field field : fields) {

    System.out.println(field.getName());

    }
    }

    }楼上说了,你可以将obj打印出来看看
      

  6.   

    只需要打开Eclipes然后就复制进去运行就可以了。很简单的。
    另外就我个人经验,实际项目很少用到反射机制。但是我们所熟悉的框架如Struts等,其实现原理很多就是反射。