2012-03-09 97 views
4

所以我想这样的在Java中创建对象的列表

ArrayList<Obj> lst = new ArrayList<Obj>(10); 
for (int i = 0; i < 10; i++) { 
    Obj elem = new Obj(); 
    lst.add(elem); 
} 

创建对象的名单这是法律还是我担心对象1得到捣毁当ELEM基准开始指向对象2?如果它是非法的,我该怎么做呢?有没有办法自动生成十个不同的参考名称?

+0

不,你只需要担心对象1得到丢弃时,有没有留下来的LST结构引用。 elem参考每次都是“新鲜”的。 – Adam 2012-03-09 23:52:31

+1

你在循环中的两行也可以写成'lst.add(new Obj());' – 2012-03-09 23:53:32

回答

5

垃圾收集器将只删除对象。 在你的情况,你的名单将指向10名不同对象对象,他们是安全的,直到你失去了参考LST对象。

3

这是完全合法的。您的ArrayList将包含对刚刚创建的对象的引用,所以它不会被GCed。

1

你的做法是完全合法的。你将得到一个十个不同的对象的列表。当有指向它的引用