[紧急求救]关于动态创建对象的问题 (JAVA)(100分)

  • 主题发起人 主题发起人 lsj
  • 开始时间 开始时间
L

lsj

Unregistered / Unconfirmed
GUEST, unregistred user!
Class c1 = Class.forname(classname);
Object ob = c1.newInstance();
这种方法只能创建有无参数构造函数的类的实例,但我的类只有带参数的构造函数(得由运行时传入对象参数),所以无法用这种方式
显然,这里应该用到reflect机制,可我就是看不明白javadoc该如何去做,请各位帮帮忙~~~~~~~~~
 
暂时解决问题了,修改了一下程序结构,只用Class绕过去了,只是封装得不太完美
好处是不必用低效的反射了...
现在可以好好讨论一下反射机制了,期待各位大侠的指点
 
Constructor constructor=Class.forName(className).getConstructor(cls);
printObj=(PrintObject)constructor.newInstance(paras);
 
请问cls什么参数?javadoc上是一个class数组,我就是想不明白,传进去个数组干什么?
 
<JAVA核心卷一>这本书关于反射的机制写的极好,建议你看一看,写的相当全面了
 
那本书借来看了,也弄明白constructor怎么用了,不过感觉这样用reflect不太好
用Class获取运行时讯息效率就不太好了,reflect一下要拿到所有的运行时讯息,威力是不小,
可性能上的代价也一定不小。如书上所说,reflect是为工具类准备的。我自己是要在一个
对象工厂中动态产生对象,所以或许用reflect反而不合适
各位能说说自己在实践中使用的感觉吗?
 
在设计的时候不必过多的考虑效率问题。没有太多意义
尤其象反射这样的设计,在资源消耗上基本可以忽略,
 
既然对象工厂中动态产生对象,和使用这个对象相比,频度一定少得多。
而且JDK 1.4比JDK 1.3反射的效率大为提高,据说提高了好多倍。
 
又碰到新问题了,这次是系统架构上的问题,自己不好解决,麻烦各位帮忙看看,提点意见,谢谢
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1712985
 
多人接受答案了。
 
后退
顶部