一个关于反射的问题,比较急,请高手们回答是否可实现....

本文探讨了如何通过动态创建SQL查询语句并利用Java反射机制获取对象实例及方法的过程。作者试图解决根据字符串动态查询并映射结果到不同对象的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现在一段这样的程序:

String hqlStr = "select " + hql.toString().substring(0, hql.toString().length()-1) + " from " + VoName;

System.out.println(hqlStr); //打印为:select id,name,account,pwd from Users

List list = service.getList(hqlStr,0,10);//将hqlStr传到另一个类里,用查询返回一个List集合

System.out.println(Tools.getHqlXmlNodeValue("boPath")+"."+VoName); //打印出是:com.mywebspace.bo.Users

Class iClass = Class.forName(Tools.getHqlXmlNodeValue("boPath")+"."+VoName);

Object myclass = iClass.newInstance();

Method[] method = myclass.getClass().getMethods();
for(int i=0; i<method.length; i++){
String name = method[i].getName();
if(!name.startsWith("set")){ continue;}
System.out.println("=====: "+name); //打印出所有Users类里的set方法
}

平时我们返回一个list集合的话,一般都是
for(int i=0; i<list.size(); i++){
[color=#FF0000]Users[/color] u = ([color=#FF0000]Users[/color])list.get(i);
....
}
这样的,现因为[color=#FF0000]Users[/color]对象不能写死,要动态的根据传过来的字符串再用Class.forName()来实例出来,也就是想让它变成:
[color=#FF0000]myclass [/color] u = ([color=#FF0000]myclass [/color])list.get(i);
这样,请问,这个是否可行.如何实现?谢谢!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值