一个关于反射的有关问题,比较急请高手们回答是否可实现.
一个关于反射的问题,比较急,请高手们回答是否可实现....
现在一段这样的程序:
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++){
Users u = (Users)list.get(i);
....
}
这样的,现因为Users对象不能写死,要动态的根据传过来的字符串再用Class.forName()来实例出来,也就是想让它变成:
myclass u = (myclass )list.get(i);
这样,请问,这个是否可行.如何实现?谢谢!
现在一段这样的程序:
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++){
Users u = (Users)list.get(i);
....
}
这样的,现因为Users对象不能写死,要动态的根据传过来的字符串再用Class.forName()来实例出来,也就是想让它变成:
myclass u = (myclass )list.get(i);
这样,请问,这个是否可行.如何实现?谢谢!