JAVA从数据库查出来的数据放到实体类想用反射的方法给他们赋值,怎么做?
2个回答
展开全部
说一个大概思路吧:
1.读取数据:从数据库中读取数据的同时,拿到元数据,即metadata;
2.实例化:通过类名,利用反射 实例你的实体类(类名可以和表名保持一致,这样就不用写额外的
映射了),如果你只是想通过反射赋值的话,你也可以直接new个类;
3.方法调用:通过元数据,利用反射 得到你的set方法(方法名可以和字段名保持一致,否则你要写
出映射关系);
1.读取数据:从数据库中读取数据的同时,拿到元数据,即metadata;
2.实例化:通过类名,利用反射 实例你的实体类(类名可以和表名保持一致,这样就不用写额外的
映射了),如果你只是想通过反射赋值的话,你也可以直接new个类;
3.方法调用:通过元数据,利用反射 得到你的set方法(方法名可以和字段名保持一致,否则你要写
出映射关系);
更多追问追答
追问
为什么直接过去get方法可以,过去set时报错怎么办。。
追答
可否把错误信息贴出来
兄弟,我看你的问题很眼熟,你是不是在百度知道问过好几次反射的问题呀,另外,我猜你用的是小米手机 ^^
展开全部
so esay
String path="com.wm.model.User";
Class clazz = class.forName(path);
User a=(User)clazz.new.newinstance(); //User类一定要有个无参构造函数
Method a = clazz.getMethod("SetName", String.class);
a.invoke(a,"张三");
这样就把值传到name里了
String path="com.wm.model.User";
Class clazz = class.forName(path);
User a=(User)clazz.new.newinstance(); //User类一定要有个无参构造函数
Method a = clazz.getMethod("SetName", String.class);
a.invoke(a,"张三");
这样就把值传到name里了
追问
哥哥clazz.new.newinstance()是什么。。
我这个复制过来报错!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询