当前位置: 代码迷 >> Java Web开发 >> java动态创建类对象解决方案
  详细解决方案

java动态创建类对象解决方案

热度:4806   发布时间:2016-04-10 22:36:17.0
java动态创建类对象
最近看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();
应该怎样写,怎样根据类名实例化对象呢
------解决方案--------------------
(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();
  相关解决方案