java动态创建类对象

chaochao670 2014-04-18 12:45:18
最近看hibernate存储对象很方便
private int insertStudent(student t1)
{
try {
saveTs = session.beginTransaction();
session.save(t1);//存储一个学生信息到数据库
saveTs.commit();
存储对象的语句一样
private int insertWorker(worker t1)
{
try {
saveTs = session.beginTransaction();
session.save(t1);//存储一个工人信息到数据库
saveTs.commit();
....
想将存储函数统一
private int insertObject(String className,Object obj)
{
try {
saveTs = session.beginTransaction();
session.save((Class.forName(className))obj);//此句语法不正确,想强制类型转换
saveTs.commit();
应该怎样写,怎样根据类名实例化对象呢
...全文
230 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
别闹腰不好 2014-04-18
  • 打赏
  • 举报
回复
(Class.forName(className)).newInstance() 这是创建一个新对象 ,你的用类转换工具,把obj的属性赋值给新创建的对象。 其实 就这么做就行了行了 protected <T> T getBean(Object bean, Class<T> c) { try { T obj = c.newInstance(); BeanUtils.copyProperties(obj, bean); return obj; } catch (Exception e) { } return null; } private int insertObject(String className,Object obj) { try { saveTs = session.beginTransaction(); session.save(getBean(Class.forName(className),obj)); saveTs.commit();
chaochao670 2014-04-18
  • 打赏
  • 举报
回复
想给类A写个以OBJECT为参数的构造函数,通过反射得到此构造函数,不知道怎么标识生成的类A对象
别闹腰不好 2014-04-18
  • 打赏
  • 举报
回复
(Class.forName(className)).newInstance()
乔不思 2014-04-18
  • 打赏
  • 举报
回复
泛型不是很难啊,能解决这个问题。。。
乔不思 2014-04-18
  • 打赏
  • 举报
回复
用 泛型吧。。。

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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