首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

怎么用变量名来代替类实例化时的类名

2012-01-01 
如何用变量名来代替类实例化时的类名比如有一命令:call.registerTypeMapping(MyArryBean.class,qn,newBean

如何用变量名来代替类实例化时的类名
比如有一命令:
call.registerTypeMapping(MyArryBean.class,   qn,
                        new   BeanSerializerFactory(MyArryBean.class,   qn),
                        new   BeanDeserializerFactory(MyArryBean.class,   qn));

...
MyArryBean   CmyAB=new   MyArryBean();
CmyAB   =   (MyArryBean)   call.invoke(new   Object[]   {   "这是调用服务器的类!web "   });

而“MyArryBean”我不能够手写上去,只能通过调用数据库里面的字段来取得:
访问数据库得到数据集,再取得数据集里面的数据给String类型的变量   a   然后用   a来代替类“MyArryBean   ”所在的位置:

call.registerTypeMapping(a.class,   qn,
                        new   BeanSerializerFactory(a.class,   qn),
                        new   BeanDeserializerFactory(a.class,   qn));

...
aCmyAB=new   a();
CmyAB   =   (a)   call.invoke(new   Object[]   {   "这是调用服务器的类!web "   });

这应该如何处理呢?

[解决办法]
申明基类MyArryBean, 你要用的类全部从基类继承.

MyArryBean beanA = (MyArryBean)Class.forName(a).newInstance();
然后就可以使用beanA.

不过你的代码:
MyArryBean CmyAB=new MyArryBean();
CmyAB = (MyArryBean) call.invoke(new Object[] { "这是调用服务器的类!web " });
明显有问题,前面new出来,然后又赋值,这个 "new "有什么意义?
单纯从这个来看,写成以下这个方式才对:
yArryBean CmyAB=(MyArryBean) call.invoke(new Object[] { "这是调用服务器的类!web " });
[解决办法]
可不可以用Class.forName( 'a ');
[解决办法]
用reflect

热点排行