高分求教求懂得java反射机制的大神指点~

yaowanpengLiferay 2014-01-06 11:06:34
[size=18px]我用的hibernate读出来的list<Object[]>,我想转成List<Map>
想用Field反射获取Object的标示名称啊 给map用
我知道思路但是不知道怎么实现
郁闷
[/size]
...全文
223 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我来学习学习,有点难啊
teemai 2014-01-06
  • 打赏
  • 举报
回复
引用 6 楼 yaowanpengLiferay 的回复:
[quote=引用 4 楼 huxiweng 的回复:] 参照我这里最简单的列子自己写就行了:http://blog.csdn.net/withiter/article/details/8859399
麻烦看我代码:

	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());
					
				}
			}
			
		}
[/quote] 楼上说了,你可以将obj打印出来看看
suciver 2014-01-06
  • 打赏
  • 举报
回复
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;    
}
yaowanpengLiferay 2014-01-06
  • 打赏
  • 举报
回复
引用 4 楼 huxiweng 的回复:
参照我这里最简单的列子自己写就行了:http://blog.csdn.net/withiter/article/details/8859399
大神?求指点代码。。。
yaowanpengLiferay 2014-01-06
  • 打赏
  • 举报
回复
引用 4 楼 huxiweng 的回复:
参照我这里最简单的列子自己写就行了:http://blog.csdn.net/withiter/article/details/8859399
我是使用的hibenate的一个SQL查询,返回的List<obj[]>,返回的结果不对呀~
yaowanpengLiferay 2014-01-06
  • 打赏
  • 举报
回复
引用 4 楼 huxiweng 的回复:
参照我这里最简单的列子自己写就行了:http://blog.csdn.net/withiter/article/details/8859399
麻烦看我代码:

	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());
					
				}
			}
			
		}
___________小P 2014-01-06
  • 打赏
  • 举报
回复
忘了 坐等大神复习
teemai 2014-01-06
  • 打赏
  • 举报
回复
参照我这里最简单的列子自己写就行了:http://blog.csdn.net/withiter/article/details/8859399
钢筋裤衩蛋 2014-01-06
  • 打赏
  • 举报
回复
http://blog.csdn.net/snihcel/article/details/7270502 看看这个
爱猫的双鱼座 2014-01-06
  • 打赏
  • 举报
回复
顶大神出来
钢筋裤衩蛋 2014-01-06
  • 打赏
  • 举报
回复
定大神出来
panzhixiong_cn 2014-01-06
  • 打赏
  • 举报
回复
引用 8 楼 yaowanpengLiferay 的回复:
引用 4 楼 huxiweng 的回复:
参照我这里最简单的列子自己写就行了:http://blog.csdn.net/withiter/article/details/8859399
大神?求指点代码。。。
只需要打开Eclipes然后就复制进去运行就可以了。很简单的。 另外就我个人经验,实际项目很少用到反射机制。但是我们所熟悉的框架如Struts等,其实现原理很多就是反射。

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧