高深的问题!·动态实例化对象 探讨。。。。。

swellyu 2004-10-14 02:52:11
我的意思是这样的。
在一个集合中有很多个一致功能的类

我要通过循环实例化这些类 能行吗?!


比如
Object[] classList = new Object[5];
//存入一些相似的java类
for(int i=0; i<classList.length; i++)
{
classList[i] temp = new classList[i]();//类的默认构造方法
//other operation
}
...全文
115 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
swellyu 2004-10-14
  • 打赏
  • 举报
回复
你好!非常感谢你的见解。
但是当一个对象存入集合后,取出来用的时候必须进行强制类型转换,所有我据利用数组。
samsung45 2004-10-14
  • 打赏
  • 举报
回复
JAVA的克隆机制,存在的最大目的是为了防止aliasing混淆。在《THINKING IN JAVA》第三版中有提到序列化状态下,使用clone()效率将会高于ObjectInputStream/ObjectOutputStream。

最近我和同事在研究这么一种情况:
假设我有这样一个方法:

Vector v = new Vector();
int k = 0;
while( true ) {
MagUnitVO muv = new MagUnitVO();
muv.setID("10");
muv.setName("abc");
v.add(k, muv);
k++;
}
其中MagUnitVO是一个标准的javabean,假设while循环很多次,比如100次。我同事认为,用克隆方式可以防止不停地构造对象,以提高效率。

Vector v = new Vector();
MagUnitVO muv = new MagUnitVO();
int k = 0;
while( true ) {
muv.setID("10");
muv.setName("abc");
muv.clone()
v.add(k, muv);
k++;
}


请问各位高手,如果这样真能提高效率,为什么?按照《Thinking in java》里的讲解,所谓克隆技术,就是在内存里分配与需要克隆的对象一样大的空间,然后将需要克隆的对象的值,复制给新的对象。
samsung45 2004-10-14
  • 打赏
  • 举报
回复
classList[i] temp = new classList[i]();//类的默认构造方法
我从来没有见过这种实例化方式。。。。。。根本就是error.
你要求一个集合中有很多功能相同的类,这很好办啊,用List或者Vector封装就可以了。通过循环不停地实例化对象。。。当然,你也可以利用克隆机制。


我有个帖子是询问克隆机制的,不过没有人回答,但是可以解决你的问题。
如下:

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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